diff options
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/ast/TreeGen.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sources/scalac/ast/TreeGen.java b/sources/scalac/ast/TreeGen.java index 3fded7edd2..1df5678920 100644 --- a/sources/scalac/ast/TreeGen.java +++ b/sources/scalac/ast/TreeGen.java @@ -882,14 +882,18 @@ public class TreeGen implements Kinds, Modifiers, TypeTags { /** Builds a ClassDef node for given class with given template. */ public ClassDef ClassDef(Symbol clazz, Template template) { + Tree type = Tree.Empty; + if (clazz.thisSym() != clazz) { + global.nextPhase(); + type = mkType(clazz.pos, clazz.typeOfThis()); + global.prevPhase(); + } ClassDef tree = make.ClassDef( clazz.pos, clazz, mkTypeParamsOf(clazz), mkParamsOf(clazz), - clazz.thisSym() != clazz - ? mkType(clazz.pos, clazz.typeOfThis()) - : Tree.Empty, + type, template); tree.setType(Type.NoType); return tree; |