summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sources/scalac/symtab/Symbol.java9
-rw-r--r--sources/scalac/typechecker/Analyzer.java2
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;