summaryrefslogtreecommitdiff
path: root/test/files/pos
Commit message (Collapse)AuthorAgeFilesLines
* Renamed Application to App.Martin Odersky2011-02-2159-67/+67
|
* Fixed a bug where newly introduced type paramet...Aleksandar Pokopec2011-02-211-0/+27
| | | | | | | | Fixed a bug where newly introduced type parameters didn't have all the substitutions done correctly. Fixes #4266. No review.
* Observed that some historical issues with packa...Paul Phillips2011-02-202-0/+22
| | | | | | | | Observed that some historical issues with package objects no longer seem so issuey. In the interests of keeping the arbitrary limitations to a minimum, re-enabled case classes in package objects (see #2130, #3437.) Closes #3437, review by odersky.
* Test case closes #3137, no review.Paul Phillips2011-02-201-0/+17
|
* Test case closes #3861, no review.Paul Phillips2011-02-181-0/+2
|
* Added a missing test case for the previous commit.Aleksandar Pokopec2011-02-161-0/+15
| | | | | No review.
* A fix for #4243.Aleksandar Pokopec2011-02-141-0/+18
| | | | | No review.
* Test case closes #4173. No review.Paul Phillips2011-02-141-0/+4
|
* Fix for #4188.Paul Phillips2011-02-111-0/+6
| | | | | | | | It seems to arise from the changes to inner objects which make them look like lazy vals. I am not sure this is the right change but at least it's only about a six character diff to review. Closes #4188, review by odersky.
* Test case uncommented.Aleksandar Pokopec2011-02-091-32/+32
|
* Added a test case for anyref specialization.Aleksandar Pokopec2011-02-091-0/+64
|
* Closes #3986 plus some cleanup. no reviewHubert Plociniczak2011-02-081-0/+5
|
* The comment for isCoDefinedWith has long saidPaul Phillips2011-02-071-0/+7
| | | | | | | | | | | Is this symbol defined in the same scope and compilation unit as `that' symbol? But "same scope" was never checked, only "same compilation unit." Presumably other layers of logic kept this from being noticed until now, but it has been crashing sbt. Added check to isCoDefinedWith. Closes #4220, review by odersky.
* Re-enabled test spec-traits (removed the swing ...Iulian Dragos2011-02-051-0/+64
| | | | | | Re-enabled test spec-traits (removed the swing dependent part, since all it tested was call-by-name parameters). no review.
* I found more situations where primitive types w...Paul Phillips2011-02-011-0/+11
| | | | | | | | I found more situations where primitive types were appearing in signatures. I hacked in a flag which says boxing is or is not allowed. The code is getting hideous: foortunately I have it mostly rewritten, but I wanted to fix this bug now. No review.
* Fixed some generic signature bugs I found thank...Paul Phillips2011-01-282-0/+8
| | | | | | Fixed some generic signature bugs I found thanks to the compiler telling me it was buggy. Thanks compiler. No review.
* Merge branch 'work'Aleksandar Pokopec2011-01-261-23/+0
| | | | | | Conflicts: src/library/scala/concurrent/SyncVar.scala
* closes #2741, #4079: pickling now ensures that ...Adriaan Moors2011-01-262-0/+14
| | | | | | | | | | | | | | | closes #2741, #4079: pickling now ensures that a local type param with a non-local owner, which will thus get a localized owner, will only get a class as its localized owner if its old owner was a class (otherwise, NoSymbol) this ensures that asSeenFrom does not treat typerefs to this symbol differently after pickling. todo: should we pro-actively set the owner of these type params to something else than the type alias that they originate from? see notes in typeFunAnon review by odersky
* Made ().## and null.## not crash anymore.Paul Phillips2011-01-201-0/+6
|
* Updated copyright notices to 2011Antonio Cunei2011-01-203-3/+3
|
* introduce NullaryMethodType to disambiguate Pol...Adriaan Moors2011-01-202-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | introduce NullaryMethodType to disambiguate PolyType motivation: given `def foo[T]: (T, T)` and `type Foo[T] = (T, T)`, `foo.info` and `TypeRef(_, Foo, Nil).normalize` are both `PolyType(List(T), Pair[T, T])` uncurry has been relying on an ugly hack to distinguish these cases based on ad-hoc kind inference without this distinction, the type alias's info (a type function) would be transformed to `PolyType(List(T), MethodType(Nil, Pair[T, T]))` anonymous type functions are being used more often (see #2741, #4017, #4079, #3443, #3106), which makes a proper treatment of PolyTypes more pressing change to type representation: PolyType(Nil, tp) -> NullaryMethodType(tp) PolyType(tps, tp) -> PolyType(tps, NullaryMethodType(tp)) (if the polytype denoted a polymorphic nullary method) PolyType(Nil, tp) is now invalid the kind of a PolyType is * iff its resulttype is a NullaryMethodType or a MethodType (i.e., it's a polymorphic value) in all other cases a PolyType now denotes a type constructor NullaryMethodType is eliminated during uncurry pickling: for backwards compatibility, a NullaryMethodType(tp) is still pickled as a PolyType(Nil, tp), unpickling rewrites pre-2.9-pickled PolyTypes according to the expected kind of the unpickled type (similar to what we used to do in uncurry) a pickled PolyType(Nil, restpe) is unpickled to NullaryMethodType(restpe) a pickled PolyType(tps, restpe) is unpickled to PolyType(tps, NullaryMethodType(restpe)) when the type is expected to have kind * the rewrite probably isn't complete, but was validated by compiling against the old scalacheck jar (which has plenty of polymorphic nullary methods) nevertheless, this commit includes a new scalacheck jar summary of the refactoring: * PolyType(List(), tp) or PolyType(Nil, tp) or PolyType(parms, tp) if params.isEmpty ==> NullaryMethodType(tp) * whenever there was a case PolyType(tps, tp) (irrespective of tps isEmpty), now need to consider the case PolyType(tps, NullaryMethodType(tp)); just add a case NullaryMethodType(tp), since usually: - there already is a PolyType case that recurses on the result type, - the polytype case applied to empty and non-empty type parameter lists alike * tp.resultType, where tp was assumed to be a PolyType that represents a polymorphic nullary method type before, tp == PolyType(tps, res), now tp == PolyType(tps, NullaryMethodType(res)) * got bitten again (last time was dependent-method types refactoring) by a TypeMap not being the identity when dropNonConstraintAnnotations is true (despite having an identity apply method). Since asSeenFrom is skipped when isTrivial, the annotations aren't dropped. The cps plugin relies on asSeenFrom dropping these annotations for trivial types though. Therefore, NullaryMethodType pretends to never be trivial. Better fix(?) in AsSeenFromMap: `if(tp.isTrivial) dropNonContraintAnnotations(tp) else ...` TODO: scalap and eclipse review by odersky, rytz
* Moved and removed a bunch of tests from pending.Paul Phillips2011-01-191-0/+12
|
* Some modifications to @elidable: for reasons lo...Paul Phillips2011-01-121-1/+1
| | | | | | | | Some modifications to @elidable: for reasons lost to me now it had a default value such that annotated methods might be elided even if the option wasn't given. It now does nothing in that situation. Closes #4051, #4151, no review.
* Merge branch 'work'Aleksandar Pokopec2011-01-121-0/+1
|
* A test case for recently fixed #4114. Plus!Paul Phillips2011-01-101-0/+8
| | | | | | | | | I had closed #2441 as a duplicate of that, but unfortunately #4114 did not bring #2441 along with it. Then I realized I'm a programmer, not a helpless trac watcher. As is often the case with thes things, fixing that revealed a bug in the library. Closes #2441 for real, review by odersky.
* Added test file.Martin Odersky2011-01-101-0/+8
|
* Fixes #4112. Closes #4112.Aleksandar Pokopec2011-01-101-0/+12
| | | | | No review.
* Override checks and self-types still needed som...Paul Phillips2011-01-081-0/+13
| | | | | | | | | Override checks and self-types still needed some work (ticket #2808.) I believe this is the right change. The modifications in parallel and actors were a result of the files failing to compile after the change to allOverriddenSymbols. (I am taking the position that that aspect is a feature.) Review by malayeri, odersky.
* Closes #3869. no review.Iulian Dragos2011-01-041-0/+10
|
* An Ordering for Seq and all of its descendents.Paul Phillips2010-12-211-0/+7
| | | | | small, very focused taste of Ordering contravariance. No review.
* Minor changes.Aleksandar Pokopec2010-12-091-3/+3
| | | | | No review.
* again: relax access boundry check for overridin...Lukas Rytz2010-12-082-0/+17
| | | | | | again: relax access boundry check for overriding protected java members. review by eugenevigdorchik.
* Test case closes #3642, no review.Paul Phillips2010-12-072-0/+10
|
* Reverts previous commit: needs a new starr..Lukas Rytz2010-12-072-10/+0
| | | | | This reverts commit 99652fe553a1a5b0c551950e8178e867943a088f.
* follow up on fix #3946.Lukas Rytz2010-12-072-0/+10
|
* close #4036, fix #2489.Lukas Rytz2010-12-031-0/+13
|
* close #3951. review by dubochet.Lukas Rytz2010-12-032-0/+40
|
* Added test for #4052Hubert Plociniczak2010-12-031-0/+5
|
* It's a big one!Paul Phillips2010-12-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TermName and TypeName are exposed throughout the compiler based on what kind of name a given abstraction ought to have. (There remain places where one needs to create a name without knowing yet what it will be, and those will always be Names.) The nme object in the compiler now holds only term names. To reference a known type name, use tpnme: nme.List == ("List": TermName) tpnme.List == ("List": TypeName) The contents of nme and tpname are defined in traits, many of which are shared, so if a name should exist only as a Type and not a Term, it should be defined in CompilerTypeNames, but otherwise in CompilerTermNames or CompilerCommonNames. This is partially complete but I'm sure there are still many shared which should pick a side. Usage of .toTermName and .toTypeName is strongly discouraged. After the dust has settled, there will be very few places where it will make sense to hop between namespaces like that. There are some implicits to smooth everything out, most of which should be removable eventually. // these two are in no hurry to go anywhere String => TermName String => TypeName // but not String => Name: def view in the compiler is no longer implicit // these two are temporary, and can log when they kick off to help us flush // out remaining issues of "name migration" Name => TermName Name => TypeName There is more work to be done before we're properly protected from naming errors, but I will not allow another eight hour tragedy to befall lukas or anyone else! Review by rytz. (Formality.)
* Deprecated the @serializable annotation, introd...Lukas Rytz2010-11-301-0/+6
| | | | | | | | | | | | | | | | | | | Deprecated the @serializable annotation, introduce a new trait "scala.Serializable" which has to be extended instead (cross-platform). Known issues: - Companion objects of serializable classes (including case classes) are automatically made serializable. However, they don't extend "Serializable" statically because of the known difficulty (should be done before typing, but hard). - Writing "case class C() extends Serializable" gives "error: trait Serializable is inherited twice" - Functions are serializable, but don't extend Serializable dynamically (could be fixed by making FunctionN Serializable - shouldn't we?) Note that @SerialVersionUID continues to be an annotation; it generates a static field, which is not possible otherwise in scala. Review by dragos, extempore. Question to dragos: in JavaPlatform.isMaybeBoxed, why is there a test for "JavaSerializableClass"? Is that correct?
* The initial implementation of TraversableOnce c...Paul Phillips2010-11-291-0/+8
| | | | | | | | | | | | | | | | | | The initial implementation of TraversableOnce could not supply concrete methods or even signatures for map and flatMap because they have different signatures in Iterator and TraversableLike. But we can take another approach which works out as nicely: 1) Create implicits which install those methods and flatten on TraversableOnce instances. 2) Generalize the signatures of flatten and flatMap to work with A => TraversableOnce[B] instead of A => Traversable[B]. And voila, you can mix and match Iterators and Traversables in a for comprehension, map, flatMap, and flatten, without the tedious process of sprinkling .iterator or .toList around to appease the compiler. No review.
* "I invite everyone to change this rule, and obs...Paul Phillips2010-11-291-0/+4
| | | | | | | | | | | | | | | | | | | | | "I invite everyone to change this rule, and observe what breaks!" This much beloved comment from #1208 has been on my radar for two years. The worm has turned. Closes #1208. The inferred type of an object is now Foo.type instead of "object Foo". What once was this: scala> val x: Map[Int, Singleton] = Map(1 -> None) <console>:5: error: type mismatch; found : (Int, object None) required: (Int, Singleton) Now exudes a pleasing aura of workingness: scala> val x: Map[Int, Singleton] = Map(1 -> None) x: Map[Int,Singleton] = Map(1 -> None) No review.
* Test case closes #3106, no review.Paul Phillips2010-11-281-0/+7
|
* protected[this] members should be accessible to...Paul Phillips2010-11-101-0/+13
| | | | | | protected[this] members should be accessible to super.x calls. Closes #464, review by odersky.
* Deprecation patrol.Paul Phillips2010-11-081-0/+8
| | | | | | | | | the same issues as JavaConversions with respect to overloading implicit methods making them inaccessible to view bounds. Fixed JavaConverters. Added a warning for when people overload parameterized implicits: in almost all cases the name is irrelevant so there's little point in unwittingly suffering degraded functionality. No review.
* Fixed crasher with @elidable on parameterized m...Paul Phillips2010-11-081-0/+10
| | | | | | Fixed crasher with @elidable on parameterized methods. Closes #3981, no review.
* This is work on -Ycheck:icode.Paul Phillips2010-11-081-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | distribution can now be built with that option, with or without optimization, and almost all tests cases can. (Those which can't are due to different -Ycheck: issues.) Major changes of interest are as follows: * LOAD_EXCEPTION and THROW are parameterized on the throwable symbol. * Does not squash all traits down to AnyRef, but instead deals with issues as they arise. By observation the cases where one needs a "Foo with Product" to manifest as both a "Foo" and a "Product" at different places are quite rare, so we need not throw out the whole baby. * Exception handlers now have positions. * The remaining checker failures removed, such as CALL_METHOD wanting to pop a value off the stack after calling a constructor. * Many multiply defined values such as REFERENCE(ObjectClass) put in one place (ICodes.scala) and reused. * -Ycheck:icode output (if also given -Ydebug) worthy of Michelangelo. Here is a class and the -Ycheck:icode -Ydebug output for f's block. class A { def f(x: Int, y: String) = try println(x + y.length) catch { case x: NullPointerException => () } } ** Checking Block 4 [S: 3, 2] [P: 1] <closed> 1-> REF(singleton class Predef) 3 + LOAD_MODULE object Predef 2-> INT 3 + LOAD_LOCAL(value x) 3-> REF(class String) 3 + LOAD_LOCAL(value y) 2<- REF(class String) 3 - CALL_METHOD java.lang.String.length (dynamic) 3-> INT 3 + CALL_METHOD java.lang.String.length (dynamic) 2<- INT 3 - CALL_PRIMITIVE(Arithmetic(ADD,INT)) 1<- INT 3 - """ 2-> INT 3 + CALL_PRIMITIVE(Arithmetic(ADD,INT)) 1<- INT 3 - BOX INT 2-> REF(class Integer) 3 + BOX INT 1<- REF(class Integer) 3 - CALL_METHOD scala.Predef.println (dynamic) 0<- REF(singleton class Predef) 3 - CALL_METHOD scala.Predef.println (dynamic) Review by dragos (I marked the specific spots I thought of interest with "PP to ID" which makes it sound like I'm talking to my primal self. Next week on programmer theater: "PP to SUPEREGO.")
* Closes #3927. No reviewHubert Plociniczak2010-11-021-0/+6
|
* Created @strictfp annotation in scala.annotation.Paul Phillips2010-11-011-0/+11
| | | | | | your fp with no tolerance for tomfoolery, this is the commit for you. Closes #1708, review by community.
* A double goodness whammy involving type inferen...Paul Phillips2010-10-271-0/+6
| | | | | | | | | | | | | | | | | | | | A double goodness whammy involving type inference at the borders. 1) Implicit search preserves singleton type fidelity. 2) Unification of parent bounds is (closer to) correct. Result of 1: "implicit def f(x: Foo.type)" will convert object Foo. Result of 2: "new Trait[Int] { }" may enjoy its type constructor being inferred, no longer foiled by the anonymous class. Also included are some clarity-enhnancing renamings and refactorings. Performance note: I heavily benchmarked the change to isSubArgs and it is reproducibly faster than the previous implementation. Numbers and methodology available upon request. Closes #2693, #3964. Review by moors, who wrote most of this patch but might like to review the comments.