summaryrefslogtreecommitdiff
path: root/test/pending/pos
Commit message (Collapse)AuthorAgeFilesLines
* Fix for SI-4744, another variety of cycle.Paul Phillips2012-10-092-2/+0
| | | | | | | | | | | | | | | | | | | | | I threw this in with the previous commit behind -Ybreak-cycles, but this one is much less sketchy. Explanation: have to handle f-bounds more deftly. Namers forces lower bounds to prevent recursion in that direction, but a light touch is required to handle these two situations differently: // This is a cyclic type parameter - an error is correct class A[T <: Comparable[_ <: T]] // This is not cyclic - it flips the arrow class B[T <: Comparable[_ >: T]] Long have I been haunted by the knowledge that you can write class B in java, but not in scala: public class B<T extends Comparable<? super T>> {} It's over! We've achieved parity with java.
* Experimental option -Ybreak-cycles.Paul Phillips2012-10-094-0/+25
| | | | | | | | | Overcomes cycles encountered during classfile parsing in possibly sketchy fashion. "illegal cyclic reference involving class Foo" is the watchword. See SI-3809.
* Moved a bunch of passing tests out of pending.Paul Phillips2012-10-0430-271/+0
| | | | | | | | | | | | | | | | | | | | | | If the test names can be believed, this covers SI-294 SI-1751 SI-1782 SI-2318 SI-3897 SI-4649 SI-4786 SI-5293 SI-5399 SI-5418 SI-5606 SI-5610 SI-5639 Most of these were moved to pending in 1729b26500 due to failures of unknown cause. It was suggested they be brought back "as soon as possible" and that was three months ago; I suppose it's now possible. If they need to be disabled again, please move them to test/disabled, not to test/pending. "disabled" should mean a formerly passing test in limbo; "pending" tests document bugs which await fixing. I also removed some dead files in test/ - the files with a "cmds" extension are from a failed experiment and do not do anything.
* Merge branch '2.10.x' into 210-mergePaul Phillips2012-09-281-0/+54
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 2.10.x: (37 commits) Added logic and tests for unchecked refinements. Moved isNonRefinementClassType somewhere logical. Moved two tests to less breaky locations. Nailed down the "impossible match" logic. Finish docs for string interpolation. moves Context.ParseError outside the cake revives macros.Infrastructure moves Context.runtimeUniverse to TreeBuild.mkRuntimeUniverseRef a more precise type for Context.mirror gets rid of macros.Infrastructure simplifies Context.Run and Context.CompilationUnit exposes Position.source as SourceFile removes extraneous stuff from macros.Infrastructure merges macros.CapturedVariables into macros.Universe merges macros.Exprs and macros.TypeTags into Context removes front ends from scala-reflect.jar PositionApi => Position hides BuildUtils from Scaladoc MirrorOf => Mirror docs.pre-lib now checks for mods in reflect ... Conflicts: test/files/neg/t4302.check test/files/neg/unchecked.check test/files/neg/unchecked2.check
| * Additional new tests for unchecked warnings.Paul Phillips2012-09-251-0/+54
| |
* | Pending tests for SI-5954, SI-6225, SI-5877, SI-4695.Paul Phillips2012-09-268-0/+85
|/ | | | | Which are all package object bugs. Plus one more test regarding package object overloading.
* Pending test for SI-3943Paul Phillips2012-09-122-0/+22
|
* move test files that fail spuriously to pendingAdriaan Moors2012-07-1714-0/+54
| | | | | | | | | | | | | | | I have this sneaky suspicion that part of these spurious failures are caused by the recent partest optimizations. @axel22 already checked that compiler instances are not shared between test runs. However, except for the benchmark test, they all have a distinct race condition in symbol loading/type checking feel to them. Since, in the end, the tests and/or their corresponding fixes are as likely a culprit as the test framework, moving them out of the way until their owners can get them back in line and they stop throwing primate wenches into our build. We should bring them back as soon as possible, though.
* repairs the tests after the refactoring spreeEugene Burmako2012-06-081-9/+11
|
* Pending and passing tests.Paul Phillips2012-05-232-0/+7
| | | | | | | | Move now-passing SI-963 test into neg. Test for partial specialization. Pending test for SI-5008. Pending test for SI-4649. Abstract array type test.
* TreeMaker approximation refactorings and bug fixesAdriaan Moors2012-05-221-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - TypeTestTreeMaker subsumes the old TypeTestTM and TypeAndEqualityTM its type- and equality-testing logic is configurable so that it can: - generate trees (main purpose) - check whether this tree maker is a pure type test - generate the proposition that models this tree maker (for exhaustivity and other analyses) - [CSE] subst binders of dropped tm's to stored ones somehow the refactoring broke the replacement of the binder of dropped treemakers by the binder of the reused treemaker when replacing TM1(x1 => ...) >> TM2(x2 => ...) >> TM3(x3 => ...) >> ... TM1'(x1' => ...) >> TM2'(x2' => ...) >> TM3(x3' => ...) >> ... by Memo1(x1 => ...) >> TM2(x2 => ...) >> Memo2(x3 => ...) >> ... Reuse(Memo2)... you need to replace x1' and x2' by x1 since TM2 tested a shared condition but was not memo-ised, that implies it simply passed x1 through to x3 unmodified, and x2' can simply use the stored x1 - type of first uniqued binder sets type of tree when approximating a tree of treemakers as a DAG, where sharing indicates the same value is tested, use the type of the binder that was first used to create a unique tree as the type of that tree, and thus all trees used for the same binder in the future - track substitution of alternatives when approximating - error on unswitchable @switch annotated matches if we can't turn a match (with more than two cases) into a switch, but the user insists, emit an error misc notes: - when all you need is nextBinder, FunTreeMaker is your guy - must pass flag to TypeTestTM for extractorarg test case TypeTestTreeMaker(prevBinder, testedBinder, expectedTp, nextBinderTp) (prevBinder eq testedBinder) does not imply it's a pure type test for an extractor call note that the expected type for an extractor argument is not a type pattern, thus we only do a classic type test -- the idea was to detect that case by noticing we're being called with the same previous and tested binder, but that case also arises for Typed patterns
* Removing redunant/passing tests from pending.Paul Phillips2012-05-101-11/+0
|
* Test cases.Paul Phillips2012-05-105-0/+62
| | | | | | Closes SI-4482, SI-4651, SI-3702. Pending tests for SI-1832, SI-3439, SI-5091, SI-5231, SI-5265.
* More useful crash reports.Paul Phillips2012-05-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you can't get your hands on something which crashes scalac - I know, I know - you can try this ready-made crasher. % cat test/pending/pos/t4717.scala trait Bounds[@specialized A] { // okay without `>: A` def x[B >: A]: Unit = new Bounds[B] { lazy val it = ??? // def or val okay it } } % scalac -d /tmp test/pending/pos/t4717.scala error: while compiling: test/pending/pos/t4717.scala during phase: specialize library version: version 2.10.0-20120510-134429-ce1d68ed19 compiler version: version 2.10.0-20120510-152646-ba4dfd1e63 reconstructed args: -d /tmp last tree to typer: Select(This(trait Bounds$mcZ$sp), x$mcZ$sp) symbol: method x$mcZ$sp in trait Bounds$mcZ$sp (flags: override <method> <specialized>) symbol definition: override def x$mcZ$sp[B >: Boolean](): Unit tpe: [B >: Boolean]()Unit symbol owners: method x$mcZ$sp -> trait Bounds$mcZ$sp -> package <empty> context owners: value it -> anonymous class $anon -> method x$mcZ$sp -> trait Bounds$mcZ$sp -> package <empty> == Enclosing template or block == Block( Assign( $anon.this."it " Apply( // def ???(): Nothing in object Predef, tree.tpe=Nothing scala.this."Predef"."$qmark$qmark$qmark" // def ???(): Nothing in object Predef, tree.tpe=()Nothing Nil ) ) $anon.this."it " // lazy private[this] var it: Nothing, tree.tpe=Nothing ) == Expanded type of tree == PolyType( typeParams = List(TypeParam(B >: Boolean)) resultType = NullaryMethodType( resultType = TypeRef(TypeSymbol(final class Unit extends AnyVal)) ) ) // And then the usual stack trace
* Fix an inference regression with this.type.Paul Phillips2012-05-091-0/+16
| | | | Closes SI-5210.
* Add test for t5564 in pending/posphaller2012-05-081-0/+5
|
*---------. Merge remote-tracking branches 'scalamacros/ticket/5722', ↵Paul Phillips2012-05-076-0/+55
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | 'scalamacros/ticket/5726', 'scalamacros/ticket/5610', 'scalamacros/ticket/5654', 'scalamacros/ticket/5521', 'scalamacros/ticket/5585', 'scalamacros/ticket/5503', 'scalamacros/ticket/4728', 'scalamacros/ticket/5534' and 'scalamacros/ticket/4560'
| | | | | | * test for SI-5534Eugene Burmako2012-05-081-0/+11
| | |_|_|_|/ | |/| | | |
| | | | | * test for SI-5503Eugene Burmako2012-05-082-0/+19
| | |_|_|/ | |/| | |
| | | | * test for SI-5585Eugene Burmako2012-05-081-0/+18
| | |_|/ | |/| |
| | | * test for SI-5521Eugene Burmako2012-05-081-0/+3
| | |/ | |/|
| | * test for SI-5654Eugene Burmako2012-05-081-0/+4
| |/
| |
| \
| \
| \
*---. | Merge commit 'refs/pull/486/head'; commit 'refs/pull/487/head'; commit ↵Paul Phillips2012-05-071-0/+29
|\ \ \| | | | | | | | | | | | | 'refs/pull/488/head'; commit 'refs/pull/489/head'; commit 'refs/pull/490/head' into develop
| | * | Add test for t5579 in pending/posphaller2012-05-071-0/+29
| |/ /
* / / Add test files for t5639 in pending/posphaller2012-05-072-0/+14
|/ /
* / Add test file in pending/posphaller2012-05-061-0/+14
|/
* Removed some tests for a "not a bug".Paul Phillips2012-05-042-46/+0
|
* Moved passing tests from pending to files.Paul Phillips2012-05-033-51/+0
| | | | | | | | Most are pattern matcher bugs fixed by virtpatmat. A few are reifier, package object, or miscellaneous. I threw in an original test for SI-2337, to go with those for SI-1697, SI-3705, SI-4415, and SI-1357, all of which (in the interests of making sure this basket has all the eggs) I am closing.
* Test cases for SI-5472, SI-5399, SI-5685.Paul Phillips2012-05-034-11/+69
|
* Pending test for si-4683.Aleksandar Prokopec2012-05-021-0/+11
|
* Pending test for si-5240.Aleksandar Prokopec2012-05-021-0/+11
|
* Test case for si-5559.Aleksandar Prokopec2012-05-021-0/+23
|
* Test case for si-5606.Aleksandar Prokopec2012-05-021-0/+9
|
* migrates stdlib and compiler to tagsEugene Burmako2012-04-231-10/+10
| | | | | * all usages of ClassManifest and Manifest are replaced with tags * all manifest tests are replaced with tag tests
* A couple tests for pending.Paul Phillips2012-03-292-0/+35
|
* Moved and edited tests.Paul Phillips2012-02-2311-81/+80
| | | | | | Remove obsolete, move passing pending -> files, update those-kinds-are-high with some new info, added a couple new ones to pending.
* A better error message for inheritance conflict.Paul Phillips2012-02-191-0/+36
| | | | | | And some tests for pending. Closes SI-5358.
* More specialization tests.Paul Phillips2012-02-194-0/+28
| | | | Some in pending, some in files. Closes SI-4770.
* Specialization action.Paul Phillips2012-02-144-0/+45
| | | | | | | | | | | | | | | | | | | | | The crickets at http://www.scala-lang.org/node/11901 were in unanimous agreement that I should proceed as suggested. - No arguments to @specialize gets you 10/10, not 9/10 - Fixed bugs in AnyRef specialization revealed by trying to use it - Specialized Function1 on AnyRef. - Changed AnyRef specialization to use OBJECT_TAG, not TVAR_TAG. - Deprecated SpecializableCompanion in favor of Specializable, which has the virtue of being public so it can be referenced from outside the library. - Cooked up mechanism to group specializable types so we don't have to repeat ourselves quite so much, and create a few groups for illustrative purposes. I'm not too serious about those names but I used up all my name-thinking-up brain for the day. - Updated genprod and friends since I had to regenerate Function1. - Put tests for a bunch of remaining specialization bugs in pending. Closes SI-4740, SI-4770, SI-5267.
* Another existential problem down.Paul Phillips2012-02-111-54/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a window of danger when multiple related elements are being typed where something which is conceptually one thing can slip into two things, and those two things can be incompatible with one another. Less mysteriously, c478eb770d fixed this: def f = { object Bob ; Bob } ; val g = f But, it did not fix this: def f = { case class Bob() ; Bob } ; val g = f See test case pos/existentials-harmful.scala for an "in the wild" code example fixed by this commit. The root of the problem was that the getter and the field would each independently derive the same existential type to describe Bob, but those existentials were not the same as one another. This has been the most elusive bug I have ever fixed. I want to cry when I think of how much time I've put into it over the past half decade or so. Unfortunately the way the repl works it is particularly good at eliciting those grotesque found/required error messages and so I was never able to let the thing go. There is still a cosmetic issue (from the last commit really) where compound types wind up with repeated parents. Closes SI-1195, SI-1201.
* Failing tests for pending.Paul Phillips2012-02-103-0/+43
|
* Begone t1737...Hubert Plociniczak2011-11-0212-31/+31
|
* Renamed tests named bugXXX to tXXX, no review.Paul Phillips2011-08-246-4/+4
|
* Don't want to chase NPEs around for the rest of...Paul Phillips2011-08-061-0/+15
| | | | | | | | Don't want to chase NPEs around for the rest of my life. Created "NoCompilationUnit" and "NoSourceFile" objects to represent not-present versions of these items. Seems a lot better than null. References SI-4859, got past NPE only to uncover the actual problem. No review.
* A few tests for pending and non-pending, no rev...Paul Phillips2011-07-272-0/+58
| | | | | A few tests for pending and non-pending, no review.
* Bounded wildcard types arising during pattern t...Paul Phillips2011-07-131-0/+11
| | | | | | Bounded wildcard types arising during pattern type inference can cause unnecessary crashes. Closes #1048, review by odersky.
* Added sanity check to lub calculation to preven...Paul Phillips2011-06-241-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Some tests for pending, no review.Paul Phillips2011-06-211-0/+29
|
* Finished reverting the misbegotten r23262, no r...Paul Phillips2011-05-261-0/+19
| | | | | Finished reverting the misbegotten r23262, no review.
* Moved and removed a bunch of tests from pending.Paul Phillips2011-01-1912-131/+10
|