aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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
| | | |
| * | | Eliminate MethodOrPolyMartin Odersky2017-04-064-6/+4
| | | | | | | | | | | | | | | | Replace with LambdaType
| * | | Eliminate ParamTypeMartin Odersky2017-04-065-18/+12
| | | | | | | | | | | | | | | | Replace with ParamRef
| * | | replace derived{Method,Poly}Type with derivedLambdaTypeMartin Odersky2017-04-0617-45/+34
| | | |
| * | | Add StarLambda, HKLambda abstractions ...Martin Odersky2017-04-061-70/+79
| | | | | | | | | | | | | | | | | | | | ... to distinguish between HK(proxy) and *(ground) types. Also, refactor some more methods to keep it DRY.
| * | | Make PolyTypes subtypes of LambdaTypesMartin Odersky2017-04-064-98/+89
| | | | | | | | | | | | | | | | Also, rename LambdaOver{Type,Term}s to {Type,Term}Lambda
| * | | Rename PolyParam --> TypeParamRefMartin Odersky2017-04-0628-173/+166
| | | |
| * | | Refactor ParamRef so that no type params are neededMartin Odersky2017-04-064-51/+31
| | | |
| * | | Disable -strict when compiling dotty.Martin Odersky2017-04-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | It seems we need a more refined way to deal with non-variant variables in pattern matches. See branch change-patmat-undet for a WIP. For the moment we disable -strict to be able to compile latest version of dotty. (reverted from commit c8fe830f8a382eb965c2231064fa286ee8f0a4ec)
| * | | Remove parameter from lambda typeMartin Odersky2017-04-062-9/+12
| | | |
| * | | Disable -strict when compiling dotty.Martin Odersky2017-04-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | It seems we need a more refined way to deal with non-variant variables in pattern matches. See branch change-patmat-undet for a WIP. For the moment we disable -strict to be able to compile latest version of dotty.
| * | | Get rid of Name parameter for LambdaType and ParamRefMartin Odersky2017-04-064-24/+32
| | | | | | | | | | | | | | | | Use an abstract type instead.
| * | | ParamType refactoringsMartin Odersky2017-04-064-77/+78
| | | | | | | | | | | | | | | | Trying to bring PolyTypes closer to TypeLambdas
| * | | Harmonize paramTypes and paramBoundsMartin Odersky2017-04-0643-213/+216
| | | | | | | | | | | | | | | | | | | | | | | | MethodTypes have paramTypes whereas PolyTypes have paramBounds. We now harmonize by alling both paramInfos, and parameterizing types that will become common to both.
| * | | Break out functionality from MethodTypeMartin Odersky2017-04-0620-134/+176
| | | | | | | | | | | | | | | | | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
| * | | Drop name checking scheme for type parametersMartin Odersky2017-04-062-10/+3
| | | | | | | | | | | | | | | | | | | | It was a red herring. Symbolic names are expanded anyway to $plus / $minus, so they can't be confused with a variance prefix.
| * | | Don't let illegal parameter names propagate into typesMartin Odersky2017-04-061-4/+4
| | | |
| * | | Fix dottydoc parameter printingMartin Odersky2017-04-061-4/+1
| | | |
| * | | Add neg test for illegal parameter namesMartin Odersky2017-04-062-1/+2
| | | | | | | | | | | | | | | | and fix typo
| * | | Encode variances in parameter namesMartin Odersky2017-04-0613-41/+76
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | This leads to a slight overall simplification, harmonizes pickle format with internal representation, and makes MethodTypes and PolyTypes more similar to each other. I believe the change is useful as it is, but in particular it is a useful step for an eventual unification of MethodTypes and PolyTypes.
* | | Merge pull request #1958 from dotty-staging/add-enumodersky2017-04-0647-184/+834
|\ \ \ | | | | | | | | Add "enum" construct