diff options
Diffstat (limited to 'sources/scalac/transformer/Erasure.java')
-rw-r--r-- | sources/scalac/transformer/Erasure.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index a42f61d9dd..b6493859c6 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -503,6 +503,17 @@ public class Erasure extends Transformer implements Modifiers { return (tree1.type instanceof Type.MethodType) ? tree1 : coerce(tree1, owntype); + case LabelDef(Name name, Tree.Ident[] params,Tree body): + Tree.Ident[] new_params = new Tree.Ident[params.length]; + for (int i = 0; i < params.length; i++) { + new_params[i] = (Tree.Ident)gen.Ident(params[i].symbol()); + } + + return copy.LabelDef(tree, new_params, transform(body)).setType(owntype); + + + + case Empty: case PackageDef(_,_): case Template(_,_): @@ -511,7 +522,6 @@ public class Erasure extends Transformer implements Modifiers { case This(_): case Literal(_): case TypeTerm(): - case LabelDef(_, _,_): return super.transform(tree).setType(owntype); case Bad(): |