summaryrefslogtreecommitdiff
path: root/sources/scalac/backend
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-02-29 11:42:27 +0000
committerpaltherr <paltherr@epfl.ch>2004-02-29 11:42:27 +0000
commit4342030b006393809ac6561618bbee95922e5c9a (patch)
tree564749f72932083d59d70d0264b8e4deba1f5c60 /sources/scalac/backend
parent7ff87b6dc3e74bbc7fc423f20511a49eff37df25 (diff)
downloadscala-4342030b006393809ac6561618bbee95922e5c9a.tar.gz
scala-4342030b006393809ac6561618bbee95922e5c9a.tar.bz2
scala-4342030b006393809ac6561618bbee95922e5c9a.zip
- Rewrote getJavaSignature to use SymbolNameWriter
Diffstat (limited to 'sources/scalac/backend')
-rw-r--r--sources/scalac/backend/Primitives.java17
1 files changed, 6 insertions, 11 deletions
diff --git a/sources/scalac/backend/Primitives.java b/sources/scalac/backend/Primitives.java
index 4615d27ec2..2c453c9dae 100644
--- a/sources/scalac/backend/Primitives.java
+++ b/sources/scalac/backend/Primitives.java
@@ -16,6 +16,7 @@ import scalac.Global;
import scalac.symtab.Definitions;
import scalac.symtab.TypeTags;
import scalac.symtab.Symbol;
+import scalac.symtab.SymbolNameWriter;
import scalac.symtab.Type;
import scalac.util.Name;
import scalac.util.Names;
@@ -173,6 +174,7 @@ public class Primitives {
private final Global global;
private final Definitions definitions;
private final Map/*<Symbol,Primitive>*/ primitives;
+ private final SymbolNameWriter javaNameWriter;
public final Symbol RUNTIME;
@@ -315,6 +317,7 @@ public class Primitives {
this.global = global;
this.definitions = global.definitions;
this.primitives = new HashMap();
+ this.javaNameWriter = new SymbolNameWriter().setClassSeparator('$');
this.RUNTIME = definitions.getModule(Names.scala_runtime_RunTime);
this.NEW_ZARRAY = getUniqueTerm(RUNTIME, ZARRAY_N);
this.NEW_BARRAY = getUniqueTerm(RUNTIME, BARRAY_N);
@@ -1253,17 +1256,9 @@ public class Primitives {
if (symbol == definitions.ANY_CLASS ||
symbol == definitions.ANYREF_CLASS)
return getJavaSignature(definitions.JAVA_OBJECT_CLASS);
- String name = symbol.name.toString();
- return getJavaPrefix(symbol.owner(), name.length())
- .append(name).toString();
- }
-
- /** Return the Java prefix of given symbol. */
- private StringBuffer getJavaPrefix(Symbol symbol, int length) {
- if (symbol.isRoot()) return new StringBuffer(length);
- String name = symbol.name.toString();
- return getJavaPrefix(symbol.owner(), name.length() + 1 + length)
- .append(name).append(symbol.isPackage() ? '.' : '$');
+ String signature = javaNameWriter.appendSymbol(symbol).toString();
+ javaNameWriter.setStringBuffer(null);
+ return signature;
}
//########################################################################