aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1395 from dotty-staging/fix-#1378odersky2016-07-211-0/+3
|\ | | | | Fix #1378: Propagate more knowledge of result type into applications
| * Proparage function result constrains when inferring parameter typesMartin Odersky2016-07-161-0/+3
| | | | | | | | | | | | | | | | If an application has functions with implicit parameter types we need to be more aggressive about propagating knowledge of the expected result type into the constraint. Fixes #1378.
* | Merge pull request #1402 from dotty-staging/fix-wildcard-protosGuillaume Martres2016-07-191-0/+11
|\ \ | | | | | | Fix wildcard protos
| * | Add test caseMartin Odersky2016-07-191-0/+11
| | |
* | | Merge pull request #1400 from dotty-staging/fix/hk-reduce-typerefsodersky2016-07-192-0/+22
|\ \ \ | |/ / |/| | HK reduction: Remove special-case for typerefs
| * | HK reduction: Remove special-case for typerefsGuillaume Martres2016-07-181-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The special case: case stripped: TypeRef => stripped.symbol.is(BaseTypeArg) is wrong because you might still want to reduce applications involving TypeRefs which are not base class parameters, like in: class Foo[A] type Alias[X] = Foo[X] val x: Alias[Int] = ??? `Alias` is a TypeRef so before this commit `Alias[Int]` was never reduced to `Foo[Int]`. It should have been: case stripped: TypeRef if stripped.symbol.is(BaseTypeArg) => true But even this is incorrect: it assumes that we can always safely reduce HK applications involving base class parameters, this is not the case when the parameter kind is different from the rhs kind as illustrated by `i1181c.scala`. We fix this by simply dropping the special case.
| * | Better test for #1181Guillaume Martres2016-07-181-0/+11
| |/ | | | | | | | | | | | | | | | | | | Now that we implement partial higher-order unification (SI-2712 fix) i1181.scala will compile even if `Alias[Int]` gets dealiased to `(Int, Int)` because we can unify the latter with `M[_]` where `M = [X] -> (Int, X)`. The new test will only succeed if `Alias[Int, Int]` is not dealiased because we will never unify `Foo[Int]` with `M[_,_]`.
* | Merge pull request #1393 from dotty-staging/fix-#1386odersky2016-07-181-0/+4
|\ \ | | | | | | Fix #1386: Reduce double def errors
| * | Refine disambiguation logic and add test case.Martin Odersky2016-07-151-0/+4
| | |
* | | Merge pull request #1399 from dotty-staging/fix-patmat-typingodersky2016-07-182-0/+25
|\ \ \ | | | | | | | | Fix typing of match expressions
| * | | Fix test error annotationMartin Odersky2016-07-181-1/+1
| | | |
| * | | Add test caseMartin Odersky2016-07-181-0/+24
| | | | | | | | | | | | | | | | Also fix reviewers comments about `firstParent`
| * | | Fix typing of match expressionsMartin Odersky2016-07-171-0/+1
| | |/ | |/| | | | | | | | | | Allow matches between unapply types and selector type where a possible overlap might exist.
* | | Merge pull request #1389 from dotty-staging/fix-#1381odersky2016-07-185-6/+80
|\ \ \ | |/ / |/| | Changes to overloading
| * | Make run tests for #1381.Nicolas Stucki2016-07-183-36/+66
| | |
| * | Add testsMartin Odersky2016-07-153-0/+39
| | | | | | | | | | | | | | | | | | Adds the original test form #1381. t2660 looks similar. Also adds some unrelated tests I had in the queue that now compile.
| * | Additions to testMartin Odersky2016-07-151-0/+9
| | |
| * | Changes to overloadingMartin Odersky2016-07-151-6/+2
| | | | | | | | | | | | | | | | | | Fix #1381: Overloading is now changed so that we first try without implicit searches. Only if that leaves no applicable alternatives we try again with implicit search turned on. This also fixes test case t2660, which got moved from neg to pos.
* | | Merge pull request #1377 from dotty-staging/#1365odersky2016-07-151-0/+13
|\ \ \ | | | | | | | | Fix 1365: Fix bindings in patterns
| * | | Fix 1365: Fix bindings in patternsMartin Odersky2016-07-091-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | We need to compare pattern types with expected types in order to derive knowledge about pattern-bound variables. This is done use the mechanism of gadt bounds.
* | | | Merge pull request #1291 from nicolasstucki/implement-scala-dynamicDmitry Petrashko2016-07-1534-0/+462
|\ \ \ \ | | | | | | | | | | Add scala.Dynamic support.
| * | | | Fix TypeOps.featureEnabled ignoring import disabling.Nicolas Stucki2016-07-071-0/+10
| | | | |
| * | | | Add scala.Dynamic language feature check.Nicolas Stucki2016-07-072-0/+10
| | | | |
| * | | | Fix #657: Add scala.Dynamic support.Nicolas Stucki2016-07-0732-0/+442
| |/ / /
* | | | Merge pull request #1334 from dotty-jvican/implement-no-predef-no-importDmitry Petrashko2016-07-153-0/+9
|\ \ \ \ | |_|/ / |/| | | Implement -Yno-predef and -Yno-imports
| * | | Implement -Yno-predef and -Yno-importsjvican2016-06-293-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | * Implement flags -Yno-predef and -Yno-imports * Add unit tests for both
* | | | Merge pull request #1343 from dotty-staging/change-hk-direct2odersky2016-07-1544-76/+404
|\ \ \ \ | | | | | | | | | | Direct representation of higher-kinded types
| * | | | Bounds of type lambdas compare contravariantlyMartin Odersky2016-07-152-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable checking of bounds when comparing type lambdas. This invalidates a pattern used in t2994 and potentially other code, where a bound [X] -> Any is used as a template that is a legal supertype of all other bounds. The old behavior is still available under language:Scala2.
| * | | | Add test case for hk bounds checkingMartin Odersky2016-07-141-0/+23
| | | | |
| * | | | Fix bounds checking of hk applied typedMartin Odersky2016-07-143-7/+37
| | | | | | | | | | | | | | | | | | | | | | | | | Previous logic could only handle classes as constructors. Also, address other reviewers comments.
| * | | | Allow hk parameters in lower boundsMartin Odersky2016-07-133-11/+15
| | | | |
| * | | | Enable test for fixed #1181: Typer should preserve aliases in TypeTreesGuillaume Martres2016-07-121-0/+0
| | | | | | | | | | | | | | | | | | | | This was fixed two commits ago.
| * | | | Drop restriction to 2nd order hk typesMartin Odersky2016-07-124-6/+55
| | | | | | | | | | | | | | | | | | | | Allow hk type parameters to be higher kinded themselves.
| * | | | Avoid dealiasing on type applicationMartin Odersky2016-07-124-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When applying a type alias of a type lambda, keep the original application instead of reducing. But reduce anyway if - the reduced type is an application where the type constructor has the same kind as the original type constructor, or - some of the arguments are wildcards.
| * | | | Allow definition of new types in refinementsMartin Odersky2016-07-126-10/+64
| | | | | | | | | | | | | | | | | | | | | | | | | Allow definition of types in refinements that do not appear in parent type.
| * | | | Fix SI-2712Martin Odersky2016-07-117-4/+79
| | | | | | | | | | | | | | | | | | | | | | | | | Allows partially instantiated types as type constrictors when inferring higher-kinded types.
| * | | | More testsMartin Odersky2016-07-112-0/+24
| | | | |
| * | | | Disallow higher-kinded types that simulate general existential typesMartin Odersky2016-07-113-1/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot handle such types in general. So we now check that a hk application C[args] where some of the arguments are wildcards does not have as a supertype a hk application ([X] -> B)[args]
| * | | | Don't make * types higher-kinded in avoidMartin Odersky2016-07-112-10/+10
| | | | | | | | | | | | | | | | | | | | Also, fix error counts in tests for new hk scheme.
| * | | | Change testsMartin Odersky2016-07-116-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - compileMixed failed because there was a cycle between immutable.Seq (compiled) and parallel.ParSeq (loaded from classfile). Inspection of the completion log (turn completions Printer on) and the stack trace showed that there's nothing we can do here. The old hk scheme did not go into the cycle because it did not force an unrelated type. I believe with enough tweaking we would also hva egotten a cycle in the old hk scheme. The test is "fixed" by adding parallel.ParSeq to the files to compile. - Disable named parameter tests Those tests do not work yet with the revised hk scheme. Before trying to fix this, we should first decide what parts of named parameters should be kept.
| * | | | Eta-expand unapplied types that have type parametersMartin Odersky2016-07-115-26/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We would like to change from a scheme where eta-expansion was prototype driven to one where unapplied parameterized types are always eta expanded. The reason is that we might miss some eta expansions due to cyclic references. run/colltest4 is an exmaple. Here, we missed an eta expansion in the type of Iterator. The class definition is: trait Iterable[+A] extends IterableOnce[A] with FromIterable[Iterable] { We'd expect that the second parent would expand to FromIterable[[X0] -> Iterable[X0]] But we miss the expansion because at the time we complete Iterable we have not completed FromIterable yet. In fact this happens in both the old and the new hk scheme. But in the old scheme we did not notice the error whereas in the new scheme we get an error in PostTyper that the type Iterable does not conform to its bound `[X0] -> Iterable[X0]`. With this commit, we change the scheme, so that eta-expansion depends on the type parameters of a type itself, instead of the expected type. We should investigate whether we can do a similar change for Scala2 classloading. Check kinds of type parameters Also, do not allow a hk type if the bound is a * type.
| * | | | Add a second betaReduceMartin Odersky2016-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new one only reduces straight applications of type lambdas with definite arguments. It is called very early on appliedTo, and derivedRefinedType. The old one, now renamed to normalizeHkApply also handles wildcard arguments and can garbage collect general unneeded hk-refinements. It is called later, at various places. TODO: See what functionality of normalizeHkApply should go into betaReduce instead. Maybe we can even drop normalizeHkApply? However: need to be careful to maintain aliases for hk type inference.
| * | | | Normalize RecTypes on creation to avoid cycles.Martin Odersky2016-07-111-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | | With this change, ski compiles (but with more errors than before). Without it, it goes into various infinite recursions.
| * | | | Introduce recursive typesMartin Odersky2016-07-112-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Map self-references in refinements to recursive types. This commit does this for refinement types appearing in source. We still have to do it for unpickled refinements. Test apply-equiv got moved to pending because it simulates the old higher-kinded type encoding in source, which relies on the old representation in terms of self-referential refinement types. The plan is not to adapt this encoding to the new representation, but to replace it with a different encoding that makes critical use of the added power of recursive types. Use recursive types also when unpickling from Scala 2.x. Add mapInfo method to Denotations.
* | | | | Merge pull request #1368 from dotty-staging/skip-redundant-superclassesDmitry Petrashko2016-07-152-0/+38
|\ \ \ \ \ | |_|_|_|/ |/| | | | Skip redundant superclasses\supertraits.
| * | | | Fix #1209: Skip redundant superclasses\supertraits.Nicolas Stucki2016-07-132-0/+38
| |/ / /
* | | | Merge pull request #1391 from dotty-staging/fix-#1387Guillaume Martres2016-07-141-0/+6
|\ \ \ \ | | | | | | | | | | Fix erasure of Java Array[T]
| * | | | Fix erasure of Java Array[T]Martin Odersky2016-07-141-0/+6
| |/ / / | | | | | | | | | | | | Should be erased to Object[], not Object.
* / / / Correct typo in IsInstanceOfEvalautor, fixes #1352Felix Mulder2016-07-141-0/+15
|/ / /
* | / Test for #1366Martin Odersky2016-07-081-0/+6
| |/ |/|