diff options
author | paltherr <paltherr@epfl.ch> | 2004-03-28 16:46:51 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-03-28 16:46:51 +0000 |
commit | 6b60fc73e6936956e251f3086e4345c5d5bb2835 (patch) | |
tree | 63ecda8f7190394ba1efbf26fc3028514794b903 /sources/scalac/util | |
parent | c262e44a2fb505174772724a920f5a7dc9804355 (diff) | |
download | scala-6b60fc73e6936956e251f3086e4345c5d5bb2835.tar.gz scala-6b60fc73e6936956e251f3086e4345c5d5bb2835.tar.bz2 scala-6b60fc73e6936956e251f3086e4345c5d5bb2835.zip |
- Added creation of general access methods in E...
- Added creation of general access methods in ExplicitOuter
Diffstat (limited to 'sources/scalac/util')
-rw-r--r-- | sources/scalac/util/Names.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sources/scalac/util/Names.java b/sources/scalac/util/Names.java index da461290c9..ab2970e521 100644 --- a/sources/scalac/util/Names.java +++ b/sources/scalac/util/Names.java @@ -8,15 +8,20 @@ package scalac.util; import scalac.symtab.Symbol; +import scalac.symtab.SymbolNameWriter; import scalac.symtab.ClassSymbol; public class Names { + private static final SymbolNameWriter writer = + new SymbolNameWriter().setAllSeparators('$').setRootSeparator('\0'); + private static final String ALIAS_PREFIX = "alias$"; private static final String LOCAL_PREFIX = "local$"; private static final String MIXIN_PREFIX = "mixin$"; private static final String OUTER_PREFIX = "outer$"; private static final String SUPER_PREFIX = "super$"; + private static final String ACCESS_PREFIX = "access$"; private static final String TUPLE_FIELD_PREFIX = "_"; private static final String TYPE_PREFIX = "type$"; @@ -51,8 +56,10 @@ public class Names { return name; } - public static Name SUPER(Symbol method) { - return Name.fromString(SUPER_PREFIX + method.name); + public static Name ACCESS(Symbol member, boolean svper) { + assert member.isTerm() && member.owner().isClass(): Debug.show(member); + String prefix = svper ? ACCESS_PREFIX + SUPER_PREFIX : ACCESS_PREFIX; + return Name.fromString(writer.toString(prefix, member)); } public static Name TUPLE_FIELD(int index) { @@ -205,4 +212,3 @@ public class Names { return NameTransformer.encode(Name.fromString(string)); } } - |