sbt/compile
Guillaume Martres cae569b313 Include used types in the set of used names
This is a backport of https://github.com/sbt/zinc/pull/87

When `B2.scala` replaces `B.scala` in the new test
`types-in-used-names-a`, the name hash of `listb` does not change because
the signature of `C.listb` is still `List[B]`, however users of
`C.listb` have to be recompiled since the subtyping relationships of its
type have changed.

This commit does this by extending the definition of "used names" to
also include the names of the types of trees, even if these types
do not appear in the source like `List[B]` in `D.scala` (since `B` has
been invalidated, this will force the recompilation of `D.scala`).

This commit does not fix every issue with used types as illustrated by
the pending test `types-in-used-names-b`, `B.scala` is not recompiled
because it uses the type `T` whose hash has not changed, but `T` is
bounded by `S` and `S` has changed, so it should be recompiled.
This should be fixable by including the type bounds underlying a
`TypeRef` in `symbolsInType`.

The test `as-seen-from-a` that did not work before shows that we may not
have to worry about tracking prefixes in `ExtractAPI` anymore, see the
discussion in sbt/zinc#87 for more information.
2016-04-20 18:27:21 +02:00
..
api Add a pending test for self variable bug (#2504) 2016-03-08 20:42:11 +01:00
inc Adds withIncludeSynthToNameHashing. Ref #2537 2016-04-05 22:57:59 -04:00
integration/src/main/scala/sbt/compiler Do not create dir, if trying to output classes to a jar 2016-02-04 15:11:55 +01:00
interface Include used types in the set of used names 2016-04-20 18:27:21 +02:00
ivy/src/main/scala/sbt/compiler Fix deprecation messages 2015-09-04 12:25:59 +02:00
persist Replace procedure syntax by explicit Unit annotation 2015-08-04 10:07:38 +02:00
src Make sbt aware of Dotty 2016-01-03 20:35:29 +01:00
NOTICE - Stuart's improvements to triggered execution 2010-07-05 12:53:37 -04:00