diff options
author | paltherr <paltherr@epfl.ch> | 2004-02-29 11:42:27 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-02-29 11:42:27 +0000 |
commit | 4342030b006393809ac6561618bbee95922e5c9a (patch) | |
tree | 564749f72932083d59d70d0264b8e4deba1f5c60 /sources/scalac | |
parent | 7ff87b6dc3e74bbc7fc423f20511a49eff37df25 (diff) | |
download | scala-4342030b006393809ac6561618bbee95922e5c9a.tar.gz scala-4342030b006393809ac6561618bbee95922e5c9a.tar.bz2 scala-4342030b006393809ac6561618bbee95922e5c9a.zip |
- Rewrote getJavaSignature to use SymbolNameWriter
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/backend/Primitives.java | 17 |
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; } //######################################################################## |