aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/sbt/ExtractAPI.scala
Commit message (Collapse)AuthorAgeFilesLines
* Lazy entering of names with internal $'s in package scopesMartin Odersky2017-04-111-2/+2
| | | | | | | | | | | | | | | | Names with internal $'s are entered in package scopes only if - we look for a name with internal $'s. - we want to know all the members of a package scope This optimization seems to be fairly effective. The typical range of package scopes that need $-names is between 0 and 20%. The optimization seems to improve execution time of all unit tests by about 3%. Also. drop the inheritance from Iterable to Scope. The reason is that we now need a context parameter for toList and other Iterable operations which makes them impossible to fit into the Iterable framework.
* Decentralize unmangling, add new nameKindsMartin Odersky2017-04-111-1/+3
| | | | | | | Start scheme where unmangling is done by NameKinds instead of in NameOps. Also add namekinds for protected accessors.
* Get rid of SuperAccessor flagMartin Odersky2017-04-111-1/+2
|
* Split HKTypeLambda from PolyTypeMartin Odersky2017-04-061-3/+3
|
* Further refactoringsMartin Odersky2017-04-061-3/+3
| | | | | - Use TypeLambda instead of PolyType. - Further harmonize factory operations
* Eliminate ParamTypeMartin Odersky2017-04-061-1/+1
| | | | Replace with ParamRef
* Harmonize paramTypes and paramBoundsMartin Odersky2017-04-061-1/+1
| | | | | | 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-061-2/+2
| | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
* incremental compilation: Fix unstable name hashing for refined membersGuillaume Martres2017-03-211-6/+42
|
* Construct MethodTypes from parameter closureMartin Odersky2017-03-141-2/+2
| | | | | To allow for dependencies between method type parameters, construct MethodTypes from a closure that maps the currently constructed MethodType to its parameter types.
* Fix incremental overcompilation due to instabilitiesGuillaume Martres2017-03-071-2/+2
| | | | | | | | | | | | | | | The output of ExtractAPI should be stable, otherwise sbt might incorrectly conclude that some API changed because its hash is different, even though the source hasn't changed. This commit fixes two cases where this might happen: - package prefixes in NamedTypes are unstable, we already worked around this by normalizing them, but only for classes, we now always do it. - We use a simplified representation for `_ >: Nothing <: Any`, this is now checked using `isDirectRef` instead of referential equality on types since there is more than one way to represent `Nothing` and `Any`. Both of these issues were found while compiling dotty with `dotty-compiler-bootstrapped/compile` and making small changes.
* Fix #1750: Handle illegal class overrides betterMartin Odersky2017-01-291-1/+11
| | | | | | | | | | | | | | | | | | Illegal class overrides are fundamentally at odds with the way dotty represents types and therefore can cause lots of low-level problems. Two measures in this commit First, we detect direct illegal class overrides on completion instead of during RefChecks. Break the override by making the previously overriding type private. This fixes i1750.scala, but still fails for indirect overrides between two unrelated outer traits/classes that are inherited by the same class or trait. We fix this by catching the previously thrown ClassCastException in both ExtractAPI and RefChecks. Test case for indirect overrides is in i1750a.scala.
* Fix #1741: sbt.ExtractAPI: extract annotationsGuillaume Martres2016-12-021-6/+24
| | | | | | | | | This is necessary for correct incremental recompilation but is also used by sbt to find tests to run (for junit they should be annotated @org.junit.Test). I added an sbt scripted test to verify that JUnit now works, to run it: $ sbt > scripted discovery/test-discovery
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+518