summaryrefslogtreecommitdiff
path: root/sources/scalac/util/Names.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/util/Names.java')
-rw-r--r--sources/scalac/util/Names.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/sources/scalac/util/Names.java b/sources/scalac/util/Names.java
index c6d92df9a5..38cf721605 100644
--- a/sources/scalac/util/Names.java
+++ b/sources/scalac/util/Names.java
@@ -12,6 +12,7 @@ import scalac.symtab.Symbol;
public class Names {
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 TUPLE_FIELD_PREFIX = "_";
@@ -22,6 +23,13 @@ public class Names {
return Name.fromString(LOCAL_PREFIX + clasz.name);
}
+ public static Name MIXIN(Symbol member) {
+ Name name = Name.fromString(MIXIN_PREFIX + member.owner().name
+ + (member.isInitializer() ? INLINED_INITIALIZER : member.name));
+ if (member.name.isTypeName()) name = name.toTypeName();
+ return name;
+ }
+
public static Name OUTER(Symbol constructor) {
assert constructor.isConstructor() : Debug.show(constructor);
Symbol clasz = constructor.constructorClass();
@@ -66,6 +74,8 @@ public class Names {
public static final Name ROOT = Name.fromString("<root>");
public static final Name CONSTRUCTOR = Name.fromString("<init>");
+ public static final Name INITIALIZER = Name.fromString("<init>");
+ public static final Name INLINED_INITIALIZER = Name.fromString("$init$");
public static final Name _EQ = encode("_=");
public static final Name MINUS = encode("-");