summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/Symbol.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-09 19:31:37 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-09 19:31:37 +0000
commitb93f7b2512dbcf2acabc009dae7d5f78a0919d82 (patch)
tree0d2e56839a6817483612578d629f3ef2258dea8c /sources/scalac/symtab/Symbol.java
parent774209bb21ac348acfaec6be004d0b3fa37d56ef (diff)
downloadscala-b93f7b2512dbcf2acabc009dae7d5f78a0919d82.tar.gz
scala-b93f7b2512dbcf2acabc009dae7d5f78a0919d82.tar.bz2
scala-b93f7b2512dbcf2acabc009dae7d5f78a0919d82.zip
- Added method Symbol.newCompoundClass
- Added Symbol.IS_COMPOUND - Adapted Type.ExtCompoundType to use method Symbol.newCompoundClass
Diffstat (limited to 'sources/scalac/symtab/Symbol.java')
-rw-r--r--sources/scalac/symtab/Symbol.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index 29f9a134e2..d5785891d3 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -39,7 +39,8 @@ public abstract class Symbol implements Modifiers, Kinds {
// Attribues -------------------------------------------------------------
- public static final int IS_ROOT = 0x00000001;
+ public static final int IS_ROOT = 0x00000001;
+ public static final int IS_COMPOUND = 0x80000000;
// Fields -------------------------------------------------------------
@@ -115,6 +116,19 @@ public abstract class Symbol implements Modifiers, Kinds {
return clasz;
}
+ /** Creates a new compound class. */
+ final ClassSymbol newCompoundClass(Type info) {
+ int pos = Position.FIRSTPOS;
+ Name name = Names.COMPOUND_NAME.toTypeName();
+ int flags = ABSTRACT | SYNTHETIC;
+ int attrs = IS_COMPOUND;
+ ClassSymbol clasz = newClass(pos, flags, name, attrs, NONE);
+ clasz.setInfo(info);
+ clasz.primaryConstructor().setInfo(
+ Type.MethodType(Symbol.EMPTY_ARRAY, clasz.typeConstructor()));
+ return clasz;
+ }
+
// Copying & cloning ------------------------------------------------------
protected void update(int pos, int flags) {
@@ -452,10 +466,9 @@ public abstract class Symbol implements Modifiers, Kinds {
return kind == CLASS && (flags & TRAIT) != 0;
}
- /** Does this class symbol denote a compound type symbol?
- */
+ /** Does this class symbol denote a compound type symbol? */
public final boolean isCompoundSym() {
- return name == Names.COMPOUND_NAME.toTypeName();
+ return (attrs & IS_COMPOUND) != 0;
}
/** Does this symbol denote a this symbol? */