aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/pos
Commit message (Collapse)AuthorAgeFilesLines
...
| * tests reorgsMartin Odersky2014-12-215-73/+2
| | | | | | | | Move some tests into proper slots + comments what they are.
| * Don't emit copy method for case classes with repeated parameters.Martin Odersky2014-12-201-7/+0
| | | | | | | | | | | | | | | | scalac has the same restriction. The reason is that we do not have a means to specify a sequence-valued default for a vararg parameter. It would be nice if we could, but this requires a more substantial development effort.
| * New passing tests.Martin Odersky2014-12-191-3/+0
| |
| * Harden implicit scope computation against CyclicReference errors.Martin Odersky2014-12-191-51/+0
| |
| * Avoid name clashes when generating synthetic companion objects.Martin Odersky2014-12-191-30/+0
| |
| * Test re-org.Martin Odersky2014-12-193-162/+0
| | | | | | | | Moved some working test to pos. I wonder why they were in pending? They did work for me.
| * Fix NoCyclicReference testMartin Odersky2014-12-191-7/+0
| | | | | | | | | | | | The problem was that, unlike a classDefSig, a higher-kinded typeDefSig did not get a preset info with its type parameters. So any type-application of the defined type in its bounds would fail.
* | Merge pull request #317 from dotty-staging/fix/java-varargsDmitry Petrashko2015-01-081-23/+0
|\ \ | | | | | | Fix/java varargs
| * | Fix passing : _* arguments to Java methodsMartin Odersky2014-12-211-23/+0
| |/ | | | | | | | | Arguments of the form (xs: _*) which are passed to Java methods need to be converted to arrays, not sequences.
* / Allow for varargs passed to Java annotation constructors.Martin Odersky2014-12-191-5/+0
|/
* move failing tests from tests/untried/pos to tests/pending/posSamuel Gruetter2014-12-16494-0/+9309
|
* Fixes in TypeComparer for RefinedTypes.Martin Odersky2014-11-242-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous scheme did not propagate bounds correctly. More generally, given a comparison T { X <: A } <: U { X <: B } it would errenously decompose this to T <: U, A <: B But we really need to check whether the total constraint for X in T { X <: A } subsumes the total constraint for X in T { X <: B } The new scheme propagates only if the binding in the lower type is an alias. E.g. T { X = A } <: Y { X <: B } decomposes to T { A = A } <: U, A <: B The change uncovered another bug, where in the slow path we too a member relative to a refined type; We need to "narrow" the type to a RefinedThis instead. (See use of "narrow" in TypeComparer). That change uncovered a third bug concerning the underlying type of a RefinedThis. The last bug was fixed in a previous commit (84f32cd814f2e07725b6ad1f6bff23d4ee38c397). Two tests (1048, 1843) which were pos tests for scalac but failed compling in dotc have changed their status and location. They typecheck now, but fail later. They have been moved to pending. There's a lot of diagnostic code in TypeComparer to figure out the various problems. I left it in to be able to come back to the commit in case there are more problems. The checks and diagnostics will be removed in a subsequent commit.
* Moved pending tests that work into pos and neg.Martin Odersky2014-11-179-155/+0
| | | | | | | One test (t2613) required lifting a hard recursion limit in findMember (used for debug only, will be removed in the future). The same test also requires -Yno-deep-subtypes to be reset, so it's in pos_special instead of pos.
* Fixes problem exhibited by ensuring.scalaMartin Odersky2014-11-131-5/+0
| | | | | Need to account for the possibility that function arguments are wrapped in braces.
* LambdaLift checks now explicitly for references to labels outside scope.Martin Odersky2014-10-261-0/+10
| | | | | Nested methods cannot refer to labels in theior environment. Needs a fix in TailCalls. Moved failing test to pending.
* New testsMartin Odersky2014-10-123-0/+53
|
* Bring back blockescapes test...Martin Odersky2014-09-061-11/+0
| | | | ... by reverting a premature optimization in Erasure.
* Partially reverting of 08c6eacaMartin Odersky2014-09-053-0/+28
| | | | | | | | | | | | | | | Partial revert of 08c6eaca "this type is a term ref to the source module". The problem with doing this is that it introduces spurious outer references. An inner module that contains self referenves always needs the directly enclosing class. The revert avoids this dependency by making ThisTypes always point to TypeRefs. Several other changes were necessary to make the builds pass: TypeRefs had to get prefixes after erasure so that they can be reloaded. Symbols of such typerefs had to be retrieved without forcing a denotation. One test (blockescapes.scala) fails and is moved to pending, awaiting further resolution. Also two other new tests in pending which currently fail (and have failed before).
* Fix to rewire typesMartin Odersky2014-07-171-0/+3
| | | | | | | t6574 has a new test where we produce identical code in an if-then-else. This broke the rewiring logic before, and is fixed now. Also, more comments and test cases.
* Avoid caching values that depend on typevar state.Martin Odersky2014-06-201-6/+0
| | | | | | | | | | | | | | TypeVars flip from the initial state, where underlying == origin to the final state where underlying == inst. This flip can invalidate information that depends on the underlying type of a TypeVar. Since we do not know when the flip occurs, we need to avoid keeping any such information in a cache. The commit makes three caches depend on a new value: typerState.ephemeral. The value is set to `true` each time we follow the underlying type of a TypeVar, and this disables cached information to be retained. A test case for this commit is t2693.scala. This test passes typechecking with the previous commit, but fails in -Ycheck:front because of stale cache info in an "#Apply" typeref. The present commit fixes that.
* Fixes to lambda abstractionMartin Odersky2014-06-191-15/+0
| | | | | | 1) Honor variance of Apply and $hkArgs when instantiating them 2) Eta-lifting a higher-kinded type is straight eta expansion, no arguments are applied.
* Handling higher-kinded types with lambdasMartin Odersky2014-06-181-0/+15
| | | | | Switch to the new scheme where higher-kinded types (and also some polymorphic type aliases) are represented as instances of Lambda traits.
* Reclassifying testsMartin Odersky2014-05-303-36/+2
|
* Triage of tests t27xx-t29xx.Martin Odersky2014-05-308-4/+155
|
* tests t26xxMartin Odersky2014-05-302-0/+17
|
* typedTyped needs to maintain Mode.Martin Odersky2014-05-301-0/+4
| | | | | The first part of a type ascription e: T can be a pattern or an expression. The mode has to be kept depending on what it was on the outside.
* Fix of t2591.Martin Odersky2014-05-301-15/+0
| | | | | | | Needed to wrap a dummyTreeOfType in a TypedSplice to prevent re-typechecking. (In fact, the "tree without pos" check revealed a deeper problem: DummyTrees of types could be typed again, but without the surrounding TypedSplice, the originally stored type would be forgotten and Null would be returned.
* Added t25xx testsMartin Odersky2014-05-301-0/+15
|
* Fix of pos/t2454Martin Odersky2014-05-301-25/+0
| | | | "_" type paraeters need to be given fresh names.
* Fix of pos/t2429Martin Odersky2014-05-201-25/+0
| | | | | | | | | | | | | | | | | This was a hard nut to crack. The problem exemplified by t2429 is that in a situation like val x: T = foo(...) where `foo` needs implicit parameters the expected result type `T` is propagated into the typechecking of foo(...) and consequently also into the implicit parameter search. This is often necessary, for instance to instantiate type parameters. But it can lead to overconstrained searches if in fact the right expansion is val x: T = viewToT(foo(...)(implicit params)) where `viewToT` is some implicit conversion. The fix handles that case by re-hecking the application foo(...) with an empty result type, if the implicit parameter search fails. But the re-checking is very subtle as is explained in the comment to `TyperState#tryWithFallback`.
* Nothing is not a superclass of Null.Martin Odersky2014-05-201-0/+26
| | | | | | | | Fix so it isn't. This caused an error in ErrorReporting because we do not propagate bounds into a type like ValOrDefDef[_]. Error in `ErrorReporting` is now fixed but the problem is reflected in test case `boundspropagation`.
* Tests pos/23xx to 24xx.Martin Odersky2014-05-202-0/+50
|
* More systematic treatment of prototypes.Martin Odersky2014-05-203-63/+0
| | | | | | | | | | | | | | | | | | | There's a delicate balance about how much of a prototype should be passed down the tree when typechecking. Passing little can cause ambiguity errors (both in overloading and in implicit search). Passing too much can cause spurious errors because implicit conversions "down the road" that apply to some tree continaing the result might not be considered. Symptoms of the problems wree that we could not handle the tests included in this commit before. The new scheme is as follows: we always keep all available information in a prototype, but hide nested prototypes behined a `IgnoredProto` wall. These trees will not be considered for conformity checking. When type checking hits an ambiguity, it tries again with a prototype that's one level deeper (has fewer Ignore links) than the previous one. This continues until there are no more Ignore links to unwrap. We also generalize the scheme for wrapping qualifiers of select nodes from realApply to all instances where we compare against a FunProto. Finally, there are some fixes that avoid assertion violations that were provoked by the new typechecking scheme.
* Tests pos 20xx 21xxMartin Odersky2014-05-201-0/+44
|
* Pos tests t17xx - t19xxMartin Odersky2014-05-202-0/+64
|
* More testsMartin Odersky2014-05-122-29/+9
|
* Re-enable t0786.Martin Odersky2014-05-081-29/+0
| | | | t0786 works again after type inference fixes. Re-enabling.
* Moved tests to pending because they fail -Ycheck:frontMartin Odersky2014-05-082-0/+58
|
* Fix of t1272: overloading resolutionMartin Odersky2014-03-211-9/+0
| | | | stripImplicits needs to take polytypes into account.
* Fix of t1279a: baseTypeWithArgsMartin Odersky2014-03-211-39/+0
| | | | | baseTypeWithArgs now also keeps track of refinements in the subtypes. Without that, the approximated lub in t1279a is too coarse and the program fails to typecheck.
* Fix of t1236: higher-kindedMartin Odersky2014-03-211-14/+0
| | | | | | | | | | | | | | | | | (and also of t0625, which reappeared). Several fixes were made. In summary: 1. Naming and representation of KigherKinded traits changed. It's now $HigherKinded$NIP where the letters after the second $ indicate variance (N)egative, (I)nvariant, (P)ositive. The HKtraits themselves are always non-variant in their parameters. 2. When deriving refined types over higher-kinded types, the variance of a type alias is the variance of the new type constructor. 3. isSubTypeHK was changed, as was the position from where it is called. 4. appliedTo also works for PolyTypes.
* Fix of t1280 - type of selfMartin Odersky2014-03-211-1/+0
| | | | | | The type of self name "x" was taken to be the thisType of the current owner. But the current owner was a local dummy of the class in question, so the ThisType was NoPrefix. Inserting an enclosingClass fixes the problem.
* Fix for t1292 - legal prefixesMartin Odersky2014-03-211-33/+0
| | | | | | | | The original test is now in error because the type Meta in the prefix Meta#Event is not stable and contains an abstract member Slog. Even after removing Slog, the test in pos was still in error because the bound type parameters were incorrectly recognized as abstract members. This has been fixed by the changes to Types.
* More testsMartin Odersky2014-03-217-0/+122
|
* Fix of t0625 - compare method typesMartin Odersky2014-03-211-8/+0
| | | | | | Method type comparison via <:< yielded false if the signatures of the two method types differed. This is too strict, because methods can have the same parametyers but different result types and still be in a subtype relationship. We now onyl demand that the sighatures have the same parameters.
* More testsMartin Odersky2014-03-211-0/+8
Added more tests which all pass, except for tests in disabled and pending. t0694 went from pos to neg, because the kind of alias type used in t0695 is no longer supported.