sbt/compile
Adriaan Moors cb0e723923 Fix #610: represent refinement typerefs stably
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)
2012-12-06 19:11:12 -05:00
..
api task setting macros for :=, +=, ++= 2012-11-17 20:19:24 -05:00
inc Analysis.groupBy implementation. 2012-11-10 19:01:41 -05:00
integration Add xsbti.Reporter to required inputs instead of maxErrors. 2012-07-13 14:33:26 -04:00
interface Fix #610: represent refinement typerefs stably 2012-12-06 19:11:12 -05:00
ivy implement embedded interface 2012-04-18 16:01:45 -04:00
persist API extraction: handle any type that is annotated, not just the spec'd simple type. Fixes #559. 2012-10-05 09:06:35 -04:00
src/test/scala drop compilation tests 2012-07-01 15:16:41 -04:00
AnalyzingCompiler.scala Source position mapper support 2012-08-31 06:24:16 -04:00
ClasspathOptions.scala using some of the embedding interfaces 2012-04-18 11:02:52 -04:00
CompilerArguments.scala Changes required to use sbt as-is from Scala-IDE. 2012-07-13 14:33:26 -04:00
CompilerCache.scala Changes required to use sbt as-is from Scala-IDE. 2012-07-13 14:33:26 -04:00
CompilerInterfaceProvider.scala implement embedded interface 2012-04-18 16:01:45 -04:00
CompilerOutput.scala Changes required to use sbt as-is from Scala-IDE. 2012-07-13 14:33:26 -04:00
Eval.scala support vals/defs in build.sbt 2012-11-17 16:27:25 -05:00
JavaCompiler.scala Add xsbti.Reporter to required inputs instead of maxErrors. 2012-07-13 14:33:26 -04:00
LoggerReporter.scala Source position mapper support 2012-08-31 06:24:16 -04:00
NOTICE - Stuart's improvements to triggered execution 2010-07-05 12:53:37 -04:00
RawCompiler.scala Changes required to use sbt as-is from Scala-IDE. 2012-07-13 14:33:26 -04:00