aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/sbt/ExtractDependencies.scala
Commit message (Collapse)AuthorAgeFilesLines
* Merge MethodType and PolyType functionality where possibleMartin Odersky2017-04-061-3/+1
| | | | | | 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.
* Rename PolyParam --> TypeParamRefMartin Odersky2017-04-061-1/+1
|
* Refactor ParamRef so that no type params are neededMartin Odersky2017-04-061-1/+1
|
* Get rid of Name parameter for LambdaType and ParamRefMartin Odersky2017-04-061-1/+1
| | | | Use an abstract type instead.
* ParamType refactoringsMartin Odersky2017-04-061-1/+1
| | | | Trying to bring PolyTypes closer to TypeLambdas
* 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-1/+1
| | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
* Revert "sbt.ExtractDependencies: avoid false dependencies"Guillaume Martres2017-03-231-1/+1
| | | | | | | | | This reverts commit 57641b9c7447fa0a6f1f47352dffb4c56c560b6a. Using `Type#select` instead of `Type#member` turned out to not help at all in avoiding false dependencies, you can still get a symbol whose denotation does not reallyExists. A proper fix for this issue is contained in the next commit.
* sbt.ExtractDependencies: avoid false dependenciesGuillaume Martres2017-01-281-1/+1
| | | | | | | | | | | | Type#member might return a denotation that doesn't "really exists" (as defined by TypeAssigner#reallyExists), in some circumstance this denotation can refer to a symbol in a class that is in the classpath but that is not used by this file, so using addDependency on the result of Type#member might add a false dependency. We avoid this by using Type#select instead which will internally do the right thing. This issue was discovered while compiling the bootstrapped projects which would sometimes force a full recompilation for no reason.
* ExtractDependencies: correctly record inheritance on type aliasGuillaume Martres2016-11-221-1/+1
| | | | | | | | | | | | This fix the test "Extracted source dependencies from public members" which previously failed with: Set('G, 'E) is not equal to Set('B, 'E) (DependencySpecification.scala:34) `H` extends `G.T[Int]` which is an alias of `B`, so the `topLevelInheritanceDepndencies` of `H` should contain `B`, this was not the case before because we didn't dealias before looking for the top-level class of the dependency, so we ended up with `G`, the top-level class in which the alias `T` is contained.
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+268