aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Flags.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-11-15 11:48:37 +0100
committerMartin Odersky <odersky@gmail.com>2015-11-17 17:53:39 +0100
commite5fcf57b1e62e420c611ed58d475d081d95f9048 (patch)
tree1a93cea5e3646036e62be3eb8a938d953a9eebcb /src/dotty/tools/dotc/core/Flags.scala
parentc435a8a2e3df50f3ca41f2f9f9f9d8d22a037785 (diff)
downloaddotty-e5fcf57b1e62e420c611ed58d475d081d95f9048.tar.gz
dotty-e5fcf57b1e62e420c611ed58d475d081d95f9048.tar.bz2
dotty-e5fcf57b1e62e420c611ed58d475d081d95f9048.zip
Fix problems arising when hierarchies of classes are under completion
Fix problems arising when hierarchies of classes are under completion at the same time. In this case it can happen that we see a subclass (e.g. Arrays.scala) which depends on a superclass (e.g. GenTraversableLike.scala) that itself does not have its parents defined yet. Previously, several things went wrong here - One of the base classes would be marked as frozen, even though it dod not have all members entered yet. This led to an error in finger printing. - The baseclasses and super class bits of the subclass would be computed before the parents of the middle class were known. The baseclasses would then be chached, leading to false results for isDerivedFrom. We need to refine the logic for computing base classes, super class bits, and fingerprints to account for that issue.
Diffstat (limited to 'src/dotty/tools/dotc/core/Flags.scala')
-rw-r--r--src/dotty/tools/dotc/core/Flags.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala
index 1271d7f6a..c8a9dc13b 100644
--- a/src/dotty/tools/dotc/core/Flags.scala
+++ b/src/dotty/tools/dotc/core/Flags.scala
@@ -348,6 +348,9 @@ object Flags {
/** A bridge method. Set by Erasure */
final val Bridge = termFlag(34, "<bridge>")
+ /** All class attributes are fully defined */
+ final val FullyCompleted = typeFlag(34, "<fully-completed>")
+
/** Symbol is a Java varargs bridge */ // (needed?)
final val VBridge = termFlag(35, "<vbridge>") // TODO remove