summaryrefslogtreecommitdiff
path: root/sources/scalac/util/Names.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-28 16:46:51 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-28 16:46:51 +0000
commit6b60fc73e6936956e251f3086e4345c5d5bb2835 (patch)
tree63ecda8f7190394ba1efbf26fc3028514794b903 /sources/scalac/util/Names.java
parentc262e44a2fb505174772724a920f5a7dc9804355 (diff)
downloadscala-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/Names.java')
-rw-r--r--sources/scalac/util/Names.java12
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));
}
}
-