diff options
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 9 | ||||
-rw-r--r-- | sources/scalac/typechecker/Analyzer.java | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index a2399fda32..dcc3dda65b 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -1190,8 +1190,13 @@ public class ClassSymbol extends TypeSymbol { if (mangled == name) { return fullName().replace((byte)'.', (byte)'$'); } else { - return Name.fromString( - enclToplevelClass().mangledFullName() + "$" + mangled); + Symbol tc = enclToplevelClass(); + if (tc != this) { + return Name.fromString( + enclToplevelClass().mangledFullName() + "$" + mangled); + } else { + return mangled; + } } } diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java index b4193f828c..0648a5d1de 100644 --- a/sources/scalac/typechecker/Analyzer.java +++ b/sources/scalac/typechecker/Analyzer.java @@ -1736,7 +1736,7 @@ public class Analyzer extends Transformer implements Modifiers, Kinds { case Block(Tree[] stats): pushContext(tree, context.owner, new Scope(context.scope)); - int lastmode = mode; + int lastmode = mode & ~FUNmode; Tree[] stats1 = desugarize.Statements(stats, true); enterSyms(stats1); context.imports = context.outer.imports; |