summaryrefslogtreecommitdiff
path: root/test/files/neg
Commit message (Collapse)AuthorAgeFilesLines
...
* Having established that r25051 is not responsib...Paul Phillips2011-06-301-1/+1
| | | | | | Having established that r25051 is not responsible for the compilation issue with scalaz, it is hereby restored. Review by moors.
* Warning! Warning! Yes, that's what's in this co...Paul Phillips2011-06-298-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Warning! Warning! Yes, that's what's in this commit. Why are you panicking? Mostly new command line options: -Xlint // basically, the ones which aren't noisy Ywarn-all -Ywarn-dead-code Ywarn-inaccessible // try this one on the library: -it makes some good points Ywarn-nullary-override Ywarn-nullary-unit -Ywarn-numeric-widen Ywarn-value-discard Some accumulated motivations: The wontfix resolution of ticket #4506 indicates that "def foo" and "def foo()" are always going to be treated differently in some situations and the same in others without users having any way to fix it. Summary expressed in latest comment with which I agree (and quite sadly, given that I've done a lot of work to try to make them usable) is "avoid using structural types like the plague." But the least we can do is warn if you're using parentheses "wrong". I think it would be better if the warning about "def foo()" overriding "def foo" were an error instead. If we have to live with this... trait Me { def f(): Int } class A { def f: Int = 5 } class C extends A with Me { } // error: Int does not take parameters def f(x: C) = x.f() // compiles def f(x: Me) = x.f() // error: Int does not take parameters. Mmph, how can a method be // legal with parameter "Foo" and illegal with parameter "Foo with // Bar" ? def f(x: Me with C) = x.f() The warning about a method contains a reference to a type which is less accessible than the method itself is obviously to those who recall it a response to GenTraversable being private and appearing in flatMap's signature during the 2.9.0 RCs. It avoids warning in the case where the unnormalized type is inaccessible but the normalized version would be, but it could use further refinement.
* Added sanity check to lub calculation to preven...Paul Phillips2011-06-244-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added sanity check to lub calculation to prevent invalid lubs from emerging. The underlying cause of said lubs is that higher-order type parameters are not handled correctly: this is why the issue is seen so frequently in the collections. See pending test pending/pos/those-kinds-are-high.scala for a demonstration. Until that's fixed, we can at least raise the bar a bit. Closes #2094, #2322, #4501. Also, some test cases in neg have been promoted into working programs: #2179, #3774. (They're not in neg for the "shouldn't work" reason, but out of despair.) In some cases, such as the original reported ticket in #3528, this only pushes the problem downfield: it still fails due to inferred type parameters not conforming to bounds. I believe a similar issue with higher-order type parameters underlies that. Look at how far this takes us though. All kinds of stuff which did not work, now works. None of these even compiled until now: scala> :type List(mutable.Map(1 -> 1), immutable.Map(1 -> 1)) List[scala.collection.Map[Int,Int]] scala> :type Set(List(1), mutable.Map(1 -> 1)) scala.collection.Set[Iterable[Any] with PartialFunction[Int,Int]] scala> :type Stream(List(1), Set(1), 1 to 5) Stream[Iterable[Int] with Int => AnyVal{def getClass(): Class[_ >: Int with Boolean <: AnyVal]}] scala> :type Map(1 -> (1 to 10), 2 -> (1 to 10).toList) scala.collection.immutable.Map[Int,scala.collection.immutable.Seq[Int] ] PERFORMANCE: compiling quick.lib and quick.comp, this patch results in an extra 27 subtype tests. Total. Time difference too small to measure. However to be on the safe side I made it really easy to disable. private final val verifyLubs = true // set to false Review by moors, odersky.
* Overrode contains and apply in mutable.HashMap ...Paul Phillips2011-06-231-1/+1
| | | | | | | | Overrode contains and apply in mutable.HashMap to avoid allocating an unnecessary Some on every call to either of them. Fruit looks a little better defended in immutable.HashMap, so I deleted a bunch of old debugging code instead. Closes #4469, no review.
* Moved test for #4727 to where it was supposed t...Paul Phillips2011-06-222-0/+18
| | | | | Moved test for #4727 to where it was supposed to go, no review.
* Updated a test with GenSetLike.Aleksandar Pokopec2011-06-221-1/+1
|
* The usual unbreaking of broken builds, no review.Paul Phillips2011-06-181-1/+1
|
* Reverts r25051 due to witnessed movement of sca...Paul Phillips2011-06-121-1/+1
| | | | | | Reverts r25051 due to witnessed movement of scalaz in the noncompiling direction. Postmortem help I hope in the review by moors.
* Proliferating the number of debugging modes bec...Paul Phillips2011-06-068-14/+14
| | | | | | | | | | | | | | Proliferating the number of debugging modes because it's still way too hard to see what's going on in there. Until we get hubert's type debugger with its whiz-bang whizbanginess, we'll have to struggle along with somewhat prettier ascii. This introduces: -Yinfer-debug which tries to print in readable fashion what is happening in the worlds of inference and implicit search. It should be made a bit more complementary and less overlappy with -Ytyper-debug. No review.
* Carved out access exception for java protected ...Paul Phillips2011-06-064-0/+42
| | | | | | Carved out access exception for java protected statics, which otherwise cannot be accessed from scala. Changes close status of #1806, no review.
* The eagerly awaited companion commit to r23622,...Paul Phillips2011-06-011-1/+1
| | | | | | | | | | | | | | | The eagerly awaited companion commit to r23622, the surprise hit of last winter. Singletons now have the singleton type inferred in monomorphic contexts as well. In english: scala> object X defined module X scala> def f = X f: X.type Wait, that's not english. English review by moors.
* Fixed a crasher in the scanner when unicode esc...Paul Phillips2011-05-292-0/+5
| | | | | | | | Fixed a crasher in the scanner when unicode escape sequences offered up EOF before completion. Also made the repl a little more robust against crashers in scalac. Treat it like a hostile witness! Closes #4584, no review.
* Fix for failing { val x = classOf[List[_]] } in...Paul Phillips2011-05-232-0/+7
| | | | | | | Fix for failing { val x = classOf[List[_]] } introduced by paulp in r23262. I already had this in mind (see comments of #4419) but I was holding back in the runup to 2.9. Closes #4419, review by odersky.
* Reverts a change as a tribute to the performanc...Paul Phillips2011-05-231-1/+11
| | | | | Reverts a change as a tribute to the performance gods, no review.
* Removes SUnit (long deprecated!) from the stand...Paul Phillips2011-05-192-13/+9
| | | | | | | | | | | | Removes SUnit (long deprecated!) from the standard library. the relatively small number of partest tests in Scala's suite that were still using SUnit now either just use regular asserts, or they print stuff that partest checks with a .check file. Also fixed some bad indentation, removed ancient useless-looking commented-out code, etc. Contributed by Seth Tisue (way to go seth) no review.
* Made -Yno-predef work again, also in the repl.Paul Phillips2011-05-073-0/+20
| | | | | | | do I import" code to notice _root_.scala.Predef too. Moved some of the overly specialized, called-only-once functions in treeInfo inside the one function which needs them. References #1931. No review.
* Made GenTraversableOnce public.Paul Phillips2011-05-072-3/+3
| | | | | No review.
* Tightened a condition to avoid a self-referenti...Paul Phillips2011-05-062-0/+15
| | | | | | Tightened a condition to avoid a self-referential pattern variable crash. Closes #3392, no review.
* Finally figured out what was going on with a ce...Paul Phillips2011-05-066-10/+89
| | | | | | | Finally figured out what was going on with a certain class of exhaustiveness checking bugs. Hey moors, you can put away your pins, puppets, and magic sauces. Closes #3098, no review.
* A better test case for #4537 than the one r2488...Paul Phillips2011-05-054-0/+22
| | | | | | A better test case for #4537 than the one r24881 didn't include, no review.
* close #4524 and close #4425, review by odersky.Lukas Rytz2011-05-052-0/+8
|
* Fix for failing test, no review.Paul Phillips2011-05-041-1/+1
|
* Since I don't want to commit anything "interest...Paul Phillips2011-05-016-16/+16
| | | | | | | | Since I don't want to commit anything "interesting" until we ship 2.9, a few uninteresting cleanups involving how types are printed, getting some debugging code in shape to prepare for the long winter ahead, etc. No review.
* Completely to my surprise, found that fixing al...Paul Phillips2011-04-304-21/+17
| | | | | | | | Completely to my surprise, found that fixing all those sequence issues revealed that the pattern matcher can catch a lot more inexhaustive cases than it has been catching. Fixed most of the inexhaustive matches in the compiler, which had become a bit warnier. No review.
* Don't crash the pickler with erroneous types.Paul Phillips2011-04-302-0/+12
|
* Closes #4457. Review by oderskyHubert Plociniczak2011-04-294-0/+86
|
* I wrote a warning when nullary methods return U...Paul Phillips2011-04-289-35/+35
| | | | | | | | | | | | | | | I wrote a warning when nullary methods return Unit. I wimped out of including it in this patch because we had about 200 of them, and that's what is fixed in this patch. I will add the warning to some kind of "-Xlint" feature after 2.9. This is motivated at least partly by the resolution of #4506, which indicates the distinction between "def foo()" and "def foo" will continue to jab its pointy stick into our eyes, so I believe we have a minimal duty of at least following our own advice about what they mean and not making a semirandom choice as to whether a method has parens or not. Review by community.
* Improved the error message for another of the m...Paul Phillips2011-04-285-0/+32
| | | | | | | | | | | | | | | | | | | Improved the error message for another of the most common situations I hear about in newbieland. It could be taken further. If compilation fails due to an unimplemented abstract method, and there is a concrete method of the same name and arity, it will do a pairwise analysis of the parameters and attempt to further explain where you went off the beam if it feels it can do so sensibly. Such as in the test case: % scalac S.scala S.scala:1: error: class S needs to be abstract, since method g in class J of type (y: Int,z: java.util.List)Int is not defined (Note that java.util.List does not match java.util.List[String]. To implement a raw type, use java.util.List[_]) class S extends J { ^ one error found No review.
* Added warning when someone tries to return a no...Paul Phillips2011-04-243-0/+16
| | | | | | Added warning when someone tries to return a non-Unit value from a Unit method, no review.
* Removed restriction on case classes having only...Paul Phillips2011-04-242-5/+0
| | | | | | Removed restriction on case classes having only two parameter lists. Closes #1333, no review.
* Fixing a couple more tests, no review.Paul Phillips2011-04-151-1/+1
|
* Fixed some tests, renamed from Any to Gen.Aleksandar Pokopec2011-04-131-2/+2
| | | | | No review.
* Refactoring the collections api to support diff...Aleksandar Pokopec2011-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring the collections api to support differentiation between referring to a sequential collection and a parallel collection, and to support referring to both types of collections. New set of traits Gen* are now superclasses of both their * and Par* subclasses. For example, GenIterable is a superclass of both Iterable and ParIterable. Iterable and ParIterable are not in a subclassing relation. The new class hierarchy is illustrated below (simplified, not all relations and classes are shown): TraversableOnce --> GenTraversableOnce ^ ^ | | Traversable --> GenTraversable ^ ^ | | Iterable --> GenIterable <-- ParIterable ^ ^ ^ | | | Seq --> GenSeq <-- ParSeq (the *Like, *View and *ViewLike traits have a similar hierarchy) General views extract common view functionality from parallel and sequential collections. This design also allows for more flexible extensions to the collections framework. It also allows slowly factoring out common functionality up into Gen* traits. From now on, it is possible to write this: import collection._ val p = parallel.ParSeq(1, 2, 3) val g: GenSeq[Int] = p // meaning a General Sequence val s = g.seq // type of s is Seq[Int] for (elem <- g) { // do something without guarantees on sequentiality of foreach // this foreach may be executed in parallel } for (elem <- s) { // do something with a guarantee that foreach is executed in order, sequentially } for (elem <- p) { // do something concurrently, in parallel } This also means that some signatures had to be changed. For example, method `flatMap` now takes `A => GenTraversableOnce[B]`, and `zip` takes a `GenIterable[B]`. Also, there are mutable & immutable Gen* trait variants. They have generic companion functionality.
* Closes #4431. Review by extempore.Martin Odersky2011-04-082-0/+23
|
* Misc cleanups and crash avoidance, no review.Paul Phillips2011-04-063-1/+14
|
* Modified some typer logic to allow annotation a...Paul Phillips2011-03-311-1/+1
| | | | | | | | | | Modified some typer logic to allow annotation arguments for constants which don't have the form Literal(_). The current logic seems to be avoided most of the time, but scaladoc breaks when it runs into it. This closes #4301. I can't figure out from the ticket what the deal is with #2764 and what is presently happening, but it seems like this patch could only improve the situation. Review by rytz.
* Added some implicitNotFound annotations to comm...Paul Phillips2011-03-282-2/+2
| | | | | | | Added some implicitNotFound annotations to commonly used classes, and some documentation to Manifest. (Said documentation is invisible for the moment due to #4404.) No review.
* [I'm laptop only so there's some chance this wi...Paul Phillips2011-03-213-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | [I'm laptop only so there's some chance this will incur temporary breakage, but it needs committing.] Heading off gratuitous complications which haven't yet shipped, I eliminated the -jar startup option in favor of doing what we already do, figuring it out. So now all these things work. scala foo/bar.scala // if file is a script or has one main method scala foo.Bar // if it has a legal main method scala foo.jar // if it has a legal MainClass attribute Also changed "-savecompiled" to "-save" and given scala source called foo.scala, generate foo.jar rather than foo.scala.jar. Cleaned up a bunch of related code and further polished the scala startup message. And unbroke choice settings and improved that error too, which closes #3849. While trying to write a test for the choice setting, was reminded that partest just discards invalid flags files. Made it fail instead, which closes #3712. Fixed the new failures that revealed. No review.
* Restored erasure warning for isInstanceOf tests.Paul Phillips2011-03-203-0/+8
| | | | | no review.
* Deprecation patrol.Paul Phillips2011-03-162-2/+2
| | | | | | | | | | | warnings due to my changing a map from mutable to immutable (which ought to be the good direction) because "def update" still lingers on immutable maps. I counted the days elapsed since it was marked for death (before 2.8.0) and added in the bugliness of what I was looking at and bid it farewell. Now removed: def update on immutable maps. No review.
* Slight tweak to case class deprecation message,...Paul Phillips2011-03-151-3/+3
| | | | | Slight tweak to case class deprecation message, no review.
* Addresses the issues swirling around Double.Eps...Paul Phillips2011-03-151-2/+2
| | | | | | | | | | | Addresses the issues swirling around Double.Epsilon and friends which were battled out in more than one venue and then aptly summarized by retronym in #3791. Thanks to Simon Ochsenreither for submitting a patch; I wasn't able to use too much of it because the source code for these types is generated, but effort is always appreciated. Closes #3791, and I'm tired and I'd hate to blow this one at this late date: review by rytz.
* Closes #4163. no reviewHubert Plociniczak2011-03-142-0/+15
|
* Changed Super to fix #4300Martin Odersky2011-03-141-1/+1
|
* Raised the scariness of the case class deprecat...Paul Phillips2011-03-073-0/+17
| | | | | | | Raised the scariness of the case class deprecation message. (I hope you don't mind, hubert, I like writing scary messages.) Closes #4109 I suppose, no review.
* Closes #3987. Review by extempore.Martin Odersky2011-03-072-0/+19
|
* Test case closes #1364, no review.Paul Phillips2011-03-032-0/+20
|
* Added cycle detection to getParts.Paul Phillips2011-03-022-0/+16
|
* Another lap around the track with generic signa...Paul Phillips2011-03-024-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | Another lap around the track with generic signatures. At the root of the issue reported in #4214 is our old friend (fondly remembered from the days of primitive equality) boxed/primitive unification. // scala trait T[A] { def f(): A } // the generic signature spec doesn't allow for parameterizing // on primitive types, so this cannot remain Char. However // translating it to Character, as was done, also has issues. class C extends T[Char] { def f(): Char = 'a' } // Note that neither of the signatures for f, the implementation // or the bridge method, matches the type parameter. Generic interfaces in class: T<java.lang.Character> Generic signatures: public char C.f() public java.lang.Object C.f() After this commit, primitive type parameters are translated into Object instead of the boxed type. It was martin's idea, so no review. Closes #4214.
* Renamed Application to App.Martin Odersky2011-02-2139-39/+39
|