mirror of https://github.com/sbt/sbt.git
goal: a representation of a type reference to a refinement class that's stable across compilation runs (and thus insensitive to typing from source or unpickling from bytecode) problem: the current representation, which corresponds to the owner chain of the refinement: 1. is affected by pickling, so typing from source or using unpickled symbols give different results (because the unpickler "localizes" owners -- this could be fixed in the compiler in the long term) 2. can't distinguish multiple refinements in the same owner (this is a limitation of SBT's internal representation and cannot be fixed in the compiler) solution: expand the reference to the corresponding refinement type: doing that recursively may not terminate, but we can deal with that by approximating recursive references (all we care about is being sound for recompilation: recompile iff a dependency changes, and this will happen as long as we have one unrolling of the reference to the refinement) |
||
|---|---|---|
| .. | ||
| api | ||
| inc | ||
| integration | ||
| interface | ||
| ivy | ||
| persist | ||
| src/test/scala | ||
| AnalyzingCompiler.scala | ||
| ClasspathOptions.scala | ||
| CompilerArguments.scala | ||
| CompilerCache.scala | ||
| CompilerInterfaceProvider.scala | ||
| CompilerOutput.scala | ||
| Eval.scala | ||
| JavaCompiler.scala | ||
| LoggerReporter.scala | ||
| NOTICE | ||
| RawCompiler.scala | ||