summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/AddInterfaces.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-09-10 11:11:15 +0000
committerpaltherr <paltherr@epfl.ch>2003-09-10 11:11:15 +0000
commit026c3573492a5330c6ee22bb4a7edbb8e31fef32 (patch)
tree2156f7472c4c1e873db3c84d00140b84a4fb674b /sources/scalac/transformer/AddInterfaces.java
parent8395399f4be02be3870ff058f8a7d4240ba502d1 (diff)
downloadscala-026c3573492a5330c6ee22bb4a7edbb8e31fef32.tar.gz
scala-026c3573492a5330c6ee22bb4a7edbb8e31fef32.tar.bz2
scala-026c3573492a5330c6ee22bb4a7edbb8e31fef32.zip
- Bug fix: new class did not reuse constructor ...
- Bug fix: new class did not reuse constructor symbol of old class.
Diffstat (limited to 'sources/scalac/transformer/AddInterfaces.java')
-rw-r--r--sources/scalac/transformer/AddInterfaces.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java
index 516a9af6bf..ea407ceed7 100644
--- a/sources/scalac/transformer/AddInterfaces.java
+++ b/sources/scalac/transformer/AddInterfaces.java
@@ -331,19 +331,16 @@ class AddInterfaces extends Transformer {
thisTypeSubst = null;
- Tree[][] oldParentArgs = extractParentArgs(classImpl.parents);
- Tree[][] parentArgs = new Tree[oldParentArgs.length + 1][];
- System.arraycopy(oldParentArgs, 0, parentArgs, 0, oldParentArgs.length);
- parentArgs[oldParentArgs.length] = Tree.EMPTY_ARRAY;
+ Tree[] newParents = Tree.cloneArray(transform(classImpl.parents), 1);
global.nextPhase();
- Type[] newParents = classSym.parents();
+ Type ifaceType = classSym.parents()[newParents.length - 1];
global.prevPhase();
- Tree[] newClassParents =
- gen.mkParentConstrs(classDef.pos, newParents, parentArgs);
+ newParents[newParents.length - 1] =
+ gen.mkParentConstr(classDef.pos, ifaceType);
Symbol local = classDef.impl.symbol();
local.setOwner(classSym);
- return gen.ClassDef(classSym, newClassParents, local, newClassBody.toArray());
+ return gen.ClassDef(classSym, newParents, local, newClassBody.toArray());
}
protected Tree[][] extractParentArgs(Tree[] parents) {