aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup of simple namesMartin Odersky2017-04-111-45/+39
| | | | | Reduce # of creation methods and make TypeNames simple derived names from TermNames.
* Merge pull request #2215 from dotty-staging/#2142odersky2017-04-117-15/+71
|\ | | | | Fix #2142: Skolemize arguments of dependent methods if necessary
| * Align safe parameter substitution with other subst methodsMartin Odersky2017-04-102-6/+6
| | | | | | | | Change name and align order of parameters.
| * Generalize definition of Type#isStableMartin Odersky2017-04-101-2/+3
| | | | | | | | | | | | | | | | | | We now consider a type also as stable if it refers to an ExprType whose result type is stable. The previous commit made pos/z1720.scala break, because it skolemized unstable argument types. This commit makes the test pass again.
| * Skolemize arguments to dependent methods as necessary.Martin Odersky2017-04-103-4/+49
| | | | | | | | This was missing before, led to errors not being detected.
| * Explain skolem typesMartin Odersky2017-04-101-3/+11
| | | | | | | | | | | | | | | | | | | | Strictly speaking, all the info about a skolem type is printed, e.g. A(?2) But it's reassuring to have an explanation line like ?2 is an unknown value of type A
| * Handle printing of term paramrefsMartin Odersky2017-04-102-6/+8
| | | | | | | | These were not printed before, fell back to toString method.
* | Merge pull request #2217 from dotty-staging/upgrade/sbt0.13.15Felix Mulder2017-04-101-1/+1
|\ \ | | | | | | Upgrade to sbt 0.13.15
| * | Upgrade to sbt 0.13.15Guillaume Martres2017-04-101-1/+1
|/ /
* | Merge pull request #2197 from dotty-staging/add-enum-exhaustivenessodersky2017-04-1014-105/+175
|\ \ | | | | | | Add enum exhaustivity checking
| * | simplify exhaustivity check using ConstantTypeliu fengyun2017-04-061-49/+11
| | | | | | | | | | | | Now the algorithm is the same as in the paper.
| * | add more enum exhaustivity testsliu fengyun2017-04-063-0/+77
| | |
| * | remove obsolete codeliu fengyun2017-04-061-9/+0
| | |
| * | exhaustivity support for enumsliu fengyun2017-04-069-56/+86
| | |
| * | Add child annotations for enum valuesMartin Odersky2017-04-063-4/+14
| | | | | | | | | | | | | | | A new kind of child annotation that points to the term symbol representing an enum value.
* | | Merge pull request #2206 from dotty-staging/fix-#2198odersky2017-04-102-2/+10
|\ \ \ | |_|/ |/| | Fix #2198: Don't widen module singletons
| * | Fix #2198: Don't widen module singletonsMartin Odersky2017-04-092-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | Since module classes are a compiler-generated construct that's not directly visible to programmers, it seems better not to automatically widen a module singleton to its underlying class. Fixes #2198.
* | | Merge pull request #2207 from dotty-staging/fix-#2188Nicolas Stucki2017-04-092-0/+8
|\ \ \ | | | | | | | | Fix #2188: Do cbn transform also on Selects
| * | | Fix #2188: Do cbn transform also on SelectsMartin Odersky2017-04-092-0/+8
| |/ / | | | | | | | | | These can arise as a result of an explicit outer transform.
* | | Merge pull request #2208 from dotty-staging/fix-#2192Guillaume Martres2017-04-092-2/+19
|\ \ \ | | | | | | | | Fix #2192: Follow supertypes when determining whether an expect type …
| * | | Fix #2192: Fullow supertypes when determining whether an expect type is a ↵Martin Odersky2017-04-092-2/+19
| |/ / | | | | | | | | | function type
* | | Merge pull request #2205 from dotty-staging/fix-#2220odersky2017-04-095-32/+80
|\ \ \ | |/ / |/| | Fix #2220: Change handling of package objects and tweak hk type inference
| * | Fix documentationMartin Odersky2017-04-091-4/+3
| | |
| * | Tweak logic for hk type comparisonsMartin Odersky2017-04-092-0/+10
| | |
| * | Tweak logic for hk type comparisonsMartin Odersky2017-04-091-4/+3
| | |
| * | Three fixes wrt handlings of package objectsMartin Odersky2017-04-092-28/+68
| | | | | | | | | | | | | | | | | | | | | | | | 1. Invalidate packageObj cache when entering a package object 2. Prefer package object members over same-named package members unless we are in the scala package 3. Exclude package objects from no-double-bindings checks, since package objects may now be visited before indexing them.
* | | Merge pull request #2204 from dotty-staging/fix/i2201odersky2017-04-094-3/+39
|\ \ \ | |/ / |/| | Fix #2201: Less aggressive type application reduction for better inference
| * | Fix #2201: Less aggressive type application reduction for better inferenceGuillaume Martres2017-04-084-3/+39
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we believed that reducing type applications did not affect type inference as long as the reduced type constructor had the same arity as the unreduced one, for example reducing `Foo[X, Y]` is fine when `Foo` is defined as: type Foo[A, B] = Bar[A, B] but not when it's defined as: type Foo[A] = Bar[A, A] But this is not a sufficient condition: the bounds of the type constructor arguments also matter for type inference, so we need to be more strict and disallow reductions in cases like: type Foo[A, B] = Bar[B, A] and: type Foo[A, B] = Bar[A, Int]
* | Merge pull request #2193 from dotty-staging/deterministic-testsFelix Mulder2017-04-063-4/+15
|\ \ | | | | | | Deterministically randomises test compilation order
| * | Use alphabetic sort by defaultOlivier Blanvillain2017-04-061-4/+11
| | |
| * | Deterministically randomises test compilation orderOlivier Blanvillain2017-04-053-4/+8
| | | | | | | | | | | | The previous implementation would compile tests in different orders from machine to machine, depending on the order in which *.scala files are listed by the operating system.
* | | Merge pull request #2187 from dotty-staging/fix-2166odersky2017-04-062-1/+12
|\ \ \ | |_|/ |/| | fix #2166: unpickling of shared CaseDef
| * | fix #2166: unpickling of shared CaseDefliu fengyun2017-04-042-1/+12
| | |
* | | Merge pull request #2121 from dotty-staging/change-merge-method-polyodersky2017-04-0670-988/+1032
|\ \ \ | | | | | | | | Refactor lambda types
| * | | Adapt TastyPrinter to new formatMartin Odersky2017-04-061-1/+1
| | | |
| * | | Update doc comment on HkTypeLambda/PolyTypeMartin Odersky2017-04-061-12/+13
| | | |
| * | | PolishingsMartin Odersky2017-04-067-19/+13
| | | |
| * | | Generalize PolyType to TypeLambda in dotty-docMartin Odersky2017-04-061-3/+3
| | | |
| * | | Fix dotty-doc to take account of refactoringsMartin Odersky2017-04-061-4/+4
| | | |
| * | | Refactorings for efficiencyMartin Odersky2017-04-062-43/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - split LambdaType.equals into two equals so that tests are more specific (also avoids type testing against a trait) - re-order cases in some pattern matches with the aim to (1) move common cases earlier, (2) move more expensive trait type tests later.
| * | | Narrow matches from TypeLambda to HKTypeLambda where appropriateMartin Odersky2017-04-064-8/+10
| | | |
| * | | Merge MethodType and PolyType functionality where possibleMartin Odersky2017-04-0612-130/+78
| | | | | | | | | | | | | | | | | | | | | | | | Two benefits: (1) less code. (2) finding subtle bugs about parameter dependent method types. By merging with PolyTypes we are forced to take parameter dependencies into account.
| * | | Make PolyType a ground typeMartin Odersky2017-04-062-1/+5
| | | | | | | | | | | | | | | | | | | | It's too surprising to leave it as a type proxy. In all circumstances except erasure, it is not true that a PolyType is somehow the same as its result type.
| * | | Split HKTypeLambda from PolyTypeMartin Odersky2017-04-069-31/+28
| | | |
| * | | Generalize comparisons from PolyTypes to TypeLambdasMartin Odersky2017-04-061-7/+7
| | | |
| * | | Handle hk lambdas in tastyMartin Odersky2017-04-064-33/+42
| | | |
| * | | Eliminate LambdaAbstractMartin Odersky2017-04-067-34/+34
| | | | | | | | | | | | | | | | Use fromParams instead.
| * | | Further refactoringsMartin Odersky2017-04-0621-146/+150
| | | | | | | | | | | | | | | | | | | | - Use TypeLambda instead of PolyType. - Further harmonize factory operations
| * | | Rename PolyTypeTree -> LambdaTypeTreeMartin Odersky2017-04-0613-44/+44
| | | |
| * | | Add HKTypeLambdaMartin Odersky2017-04-061-5/+40
| | | |