diff options
author | schinz <schinz@epfl.ch> | 2003-05-14 13:06:47 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-05-14 13:06:47 +0000 |
commit | 974fe6069de1fc2c9e7138a3c976a3cc7092233d (patch) | |
tree | 5b38a0a0fd025b24638aec6d381a9ca5c2b5685d /sources/scalac/transformer | |
parent | 74be7e83e5b49f9f7906d6b17966a544511d8322 (diff) | |
download | scala-974fe6069de1fc2c9e7138a3c976a3cc7092233d.tar.gz scala-974fe6069de1fc2c9e7138a3c976a3cc7092233d.tar.bz2 scala-974fe6069de1fc2c9e7138a3c976a3cc7092233d.zip |
- names of constructor methods are not construc...
- names of constructor methods are not constructor names anymore, since
that violates several invariants in Symbol.java
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r-- | sources/scalac/transformer/AddConstructors.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/scalac/transformer/AddConstructors.java b/sources/scalac/transformer/AddConstructors.java index 5725af9b02..995752fb20 100644 --- a/sources/scalac/transformer/AddConstructors.java +++ b/sources/scalac/transformer/AddConstructors.java @@ -10,6 +10,7 @@ package scalac.transformer; import scalac.Global; import scalac.util.Name; +import scalac.util.Names; import scalac.ast.Tree; import Tree.*; @@ -47,7 +48,7 @@ import scalac.util.Debug; */ public class AddConstructors extends Transformer { - public final static Name CTOR_N = Name.fromString("<init>").toConstrName(); + public final static Name CTOR_N = Names.CONSTRUCTOR; // True iff we generate code for INT backend. protected final boolean forINT; @@ -80,7 +81,7 @@ public class AddConstructors extends Transformer { Symbol constr = (Symbol) constructors.get(classConstr); if (constr == null) { - assert !owner.isInterface(); + assert !owner.isInterface() : Debug.show(owner) + " is interface"; int flags = forJVM ? classConstr.flags & (Modifiers.PRIVATE | Modifiers.PROTECTED) : classConstr.flags; @@ -110,7 +111,7 @@ public class AddConstructors extends Transformer { assert treeSym.name.isTypeName(); if (treeSym.isInterface()) - return tree; + return super.transform(tree); Symbol[] paramSyms = new Symbol[vparams[0].length]; for (int i = 0; i < paramSyms.length; i++) @@ -209,7 +210,7 @@ public class AddConstructors extends Transformer { Tree base = baseClasses[0]; switch (base) { case Apply(Tree fun, Tree[] args): - return gen.New(copy.Apply + return gen.New(copy.Apply (base, gen.Ident(base.pos, getConstructor(fun.symbol())), transform(args))); |