diff options
author | Martin Odersky <odersky@gmail.com> | 2003-04-16 13:51:23 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-04-16 13:51:23 +0000 |
commit | 17a647a7408200cc9e32c056307c895d56cff976 (patch) | |
tree | 5780dad75e69af32c42f02ebe48e4b137040fc1a /sources/scalac/symtab | |
parent | 4d51076c624e8b08c0053adfca5008063ec7e849 (diff) | |
download | scala-17a647a7408200cc9e32c056307c895d56cff976.tar.gz scala-17a647a7408200cc9e32c056307c895d56cff976.tar.bz2 scala-17a647a7408200cc9e32c056307c895d56cff976.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/symtab')
-rw-r--r-- | sources/scalac/symtab/Modifiers.java | 8 | ||||
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 3 | ||||
-rw-r--r-- | sources/scalac/symtab/classfile/ClassfileParser.java | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/sources/scalac/symtab/Modifiers.java b/sources/scalac/symtab/Modifiers.java index 8d161ce117..a368b0b6ba 100644 --- a/sources/scalac/symtab/Modifiers.java +++ b/sources/scalac/symtab/Modifiers.java @@ -47,15 +47,17 @@ public interface Modifiers { int ACCESSOR = 0x04000000; // function is an access function for a // value or variable - int BRIDGE = 0x0800000; // function is a bridge method. + int BRIDGE = 0x0800000; // function is a bridge method. + int SNDTIME = BRIDGE; // debug int INTERFACE = 0x10000000; // symbol is a Java interface int TRAIT = 0x20000000; // symbol is a Trait - int SNDTIME = 0x40000000; //debug + int COVARIANT = 0x40000000; // symbol is a covariant type variable + int CONTRAVARIANT = 0x80000000; // symbol is a contravariant type variable // masks - int SOURCEFLAGS = 0x00000077 | DEF | REPEATED | MODUL | MUTABLE | PACKAGE | PARAM | TRAIT; // these modifiers can be set in source programs. + int SOURCEFLAGS = 0x00000077 | DEF | REPEATED | MODUL | MUTABLE | PACKAGE | PARAM | TRAIT | COVARIANT | CONTRAVARIANT; // these modifiers can be set in source programs. int ACCESSFLAGS = PRIVATE | PROTECTED; public static class Helper { diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 546e2db3d4..75563a6ced 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -500,7 +500,8 @@ public abstract class Symbol implements Modifiers, Kinds { flags = flags & ~LOCKED; if (info instanceof SourceCompleter && (flags & SNDTIME) == 0) { flags |= SNDTIME; - return info(); + Type tp = info(); + flags &= ~SNDTIME; } else { assert !(rawInfoAt(id) instanceof Type.LazyType) : this; flags |= INITIALIZED; diff --git a/sources/scalac/symtab/classfile/ClassfileParser.java b/sources/scalac/symtab/classfile/ClassfileParser.java index a0d69c4bed..097258c2b9 100644 --- a/sources/scalac/symtab/classfile/ClassfileParser.java +++ b/sources/scalac/symtab/classfile/ClassfileParser.java @@ -146,7 +146,7 @@ public class ClassfileParser implements ClassfileConstants { if ((flags & 0x0010) != 0) res |= Modifiers.FINAL; if ((flags & 0x0200) != 0) - res |= Modifiers.INTERFACE | Modifiers.ABSTRACTCLASS; + res |= Modifiers.INTERFACE | Modifiers.TRAIT | Modifiers.ABSTRACTCLASS; return res | Modifiers.JAVA; } |