aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core
Commit message (Collapse)AuthorAgeFilesLines
...
* | Add Variant NameInfoMartin Odersky2017-04-1110-16/+41
| | | | | | | | Plus further bug fixes.
* | Add default getter namesMartin Odersky2017-04-117-51/+160
| | | | | | | | Plus various bug fixes and filling in missing functionality
* | Handle expansion and flatteningMartin Odersky2017-04-1111-48/+130
| |
* | PolishingsMartin Odersky2017-04-114-38/+47
| |
* | Bug fixesMartin Odersky2017-04-117-60/+109
| | | | | | | | nameddefaults.scala now compiles without crashing
* | Implement startsWith/encode/decode for derived names.Martin Odersky2017-04-114-15/+32
| |
* | Disentangle Names from SeqsMartin Odersky2017-04-117-79/+67
| | | | | | | | | | | | | | | | | | Structured names are not Seqs anymmore. But the Seq behavior is required in many places that mangle names. As an intermediate step we drop the Seq basetype but add Seq behavior through a decorator. Most Seq operations only work on SimpleTermNames and their TypeName analogue, will throw an exception wehn called on structured names.
* | Use system hashcode for all names except SimpleTermNamesMartin Odersky2017-04-111-4/+2
| | | | | | | | Keep start as a hash for SimpleTermNames because it distributed better.
* | Fix typos and redundant statements in previous commitsMartin Odersky2017-04-112-5/+1
| |
* | Deug info in classfile parserMartin Odersky2017-04-111-1/+8
| |
* | Unmangle class names in ClassfileParserMartin Odersky2017-04-111-1/+1
| |
* | Self-checked structured qualified namesMartin Odersky2017-04-111-4/+27
| | | | | | | | | | | | This is a temporary step. If semanticNames is true we construct structured qualified names, but check they have the same string representation as the unstructured names.
* | Start to use structured ModuleNamesMartin Odersky2017-04-113-8/+29
| | | | | | | | Subject to flags Config.semanticNames.
* | Fix handling of qualified namesMartin Odersky2017-04-112-19/+42
| | | | | | | | | | These always construct a new name, other derivations should not commute with Qualified.
* | Fix @sharable problemMartin Odersky2017-04-111-1/+1
| |
* | Add derived name machineryMartin Odersky2017-04-113-11/+114
| | | | | | | | Add machinery to define and hash cons derived names.
* | Cleanup of simple namesMartin Odersky2017-04-111-45/+39
| | | | | | | | | | Reduce # of creation methods and make TypeNames simple derived names from TermNames.
* | 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.
* | Merge pull request #2205 from dotty-staging/fix-#2220odersky2017-04-093-32/+70
|\ \ | | | | | | 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-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.
* | | Fix #2201: Less aggressive type application reduction for better inferenceGuillaume Martres2017-04-081-3/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-061-1/+1
|\ \ | | | | | | Deterministically randomises test compilation order
| * | Deterministically randomises test compilation orderOlivier Blanvillain2017-04-051-1/+1
| | | | | | | | | | | | 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-061-1/+7
|\ \ \ | |_|/ |/| | fix #2166: unpickling of shared CaseDef
| * | fix #2166: unpickling of shared CaseDefliu fengyun2017-04-041-1/+7
| | |
* | | Adapt TastyPrinter to new formatMartin Odersky2017-04-061-1/+1
| | |
* | | Update doc comment on HkTypeLambda/PolyTypeMartin Odersky2017-04-061-12/+13
| | |
* | | PolishingsMartin Odersky2017-04-064-16/+10
| | |
* | | 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-063-5/+7
| | |
* | | Merge MethodType and PolyType functionality where possibleMartin Odersky2017-04-066-112/+70
| | | | | | | | | | | | | | | | | | 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-064-11/+8
| | |
* | | Generalize comparisons from PolyTypes to TypeLambdasMartin Odersky2017-04-061-7/+7
| | |
* | | Handle hk lambdas in tastyMartin Odersky2017-04-063-32/+41
| | |
* | | Eliminate LambdaAbstractMartin Odersky2017-04-063-27/+28
| | | | | | | | | | | | Use fromParams instead.
* | | Further refactoringsMartin Odersky2017-04-0612-122/+131
| | | | | | | | | | | | | | | - Use TypeLambda instead of PolyType. - Further harmonize factory operations
* | | Rename PolyTypeTree -> LambdaTypeTreeMartin Odersky2017-04-063-15/+15
| | |
* | | Add HKTypeLambdaMartin Odersky2017-04-061-5/+40
| | |
* | | Eliminate MethodOrPolyMartin Odersky2017-04-061-3/+1
| | | | | | | | | | | | Replace with LambdaType
* | | Eliminate ParamTypeMartin Odersky2017-04-063-16/+10
| | | | | | | | | | | | Replace with ParamRef
* | | replace derived{Method,Poly}Type with derivedLambdaTypeMartin Odersky2017-04-066-29/+18
| | |
* | | 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-0614-140/+133
| | |
* | | Refactor ParamRef so that no type params are neededMartin Odersky2017-04-062-49/+29
| | |
* | | Remove parameter from lambda typeMartin Odersky2017-04-061-8/+11
| | |
* | | Get rid of Name parameter for LambdaType and ParamRefMartin Odersky2017-04-062-22/+30
| | | | | | | | | | | | Use an abstract type instead.