summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2006-08-15 16:09:53 +0000
committerIulian Dragos <jaguarul@gmail.com>2006-08-15 16:09:53 +0000
commit67bdd4e52b5a530f7cd56ef7f04c59a6e4a52635 (patch)
tree02c68cd5c0f2b1dc4ee8ef01509ce6fab4e4b4ce
parent8c39831d837d448e45e65aeeb32ba44724c290bf (diff)
downloadscala-67bdd4e52b5a530f7cd56ef7f04c59a6e4a52635.tar.gz
scala-67bdd4e52b5a530f7cd56ef7f04c59a6e4a52635.tar.bz2
scala-67bdd4e52b5a530f7cd56ef7f04c59a6e4a52635.zip
Fixed order of inner classes entries to have 'd...
Fixed order of inner classes entries to have 'deterministic' binary output.
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index ac7aaa0760..4c6bc8a2f6 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -10,7 +10,8 @@ package scala.tools.nsc.backend.jvm;
import java.io.File;
import java.nio.ByteBuffer;
-import scala.collection.mutable.{Map, HashMap, Set, HashSet};
+import scala.collection.mutable.{Map, HashMap};
+import scala.collection.immutable.{Set, ListSet};
import scala.tools.nsc.symtab._;
import scala.tools.nsc.util.Position;
@@ -83,7 +84,7 @@ abstract class GenJVM extends SubComponent {
var jmethod: JMethod = _;
var jcode: JExtendedCode = _;
- var innerClasses: Set[Symbol] = new HashSet; // referenced inner classes
+ var innerClasses: Set[Symbol] = ListSet.Empty; // referenced inner classes
val fjbgContext = if (settings.target.value == "jvm-1.5") new FJBGContext(49, 0) else new FJBGContext();
@@ -126,7 +127,7 @@ abstract class GenJVM extends SubComponent {
if (settings.debug.value)
log("Generating class " + c.symbol + " flags: " + Flags.flagsToString(c.symbol.flags));
clasz = c;
- innerClasses.clear;
+ innerClasses = ListSet.Empty;
var parents = c.symbol.info.parents;
var ifaces = JClass.NO_INTERFACES;
@@ -331,7 +332,7 @@ abstract class GenJVM extends SubComponent {
// add inner classes which might not have been referenced yet
atPhase(currentRun.erasurePhase) {
for (val sym <- clasz.symbol.info.decls.elements; sym.isClass)
- innerClasses += sym;
+ innerClasses = innerClasses + sym;
}
val innerClassesAttr = jclass.getInnerClasses();
@@ -1174,7 +1175,7 @@ abstract class GenJVM extends SubComponent {
return "scala.AllRef$";
if (sym.isClass && !sym.rawowner.isPackageClass)
- innerClasses += sym;
+ innerClasses = innerClasses + sym;
(if (sym.isClass || (sym.isModule && !sym.isMethod))
sym.fullNameString('/')