summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/tools/scalac/typechecker/Analyzer.scala2
-rw-r--r--sources/scalac/ast/TreeGen.java6
-rw-r--r--sources/scalac/symtab/Symbol.java3
3 files changed, 6 insertions, 5 deletions
diff --git a/sources/scala/tools/scalac/typechecker/Analyzer.scala b/sources/scala/tools/scalac/typechecker/Analyzer.scala
index f610a5deb0..a42d711398 100644
--- a/sources/scala/tools/scalac/typechecker/Analyzer.scala
+++ b/sources/scala/tools/scalac/typechecker/Analyzer.scala
@@ -849,7 +849,7 @@ class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer(
case Tree$ClassDef(mods, name, tparams, vparams, _, templ) =>
val clazz =
if (mods == SYNTHETIC && name == Names.ANON_CLASS_NAME.toTypeName())
- context.owner.newAnonymousClass(templ.pos)
+ context.owner.newAnonymousClass(templ.pos, name)
else
classSymbol(tree.pos, name, owner, mods, context.scope);
if (!clazz.primaryConstructor().isInitialized())
diff --git a/sources/scalac/ast/TreeGen.java b/sources/scalac/ast/TreeGen.java
index 6cf6c6cb23..f298d4a9a8 100644
--- a/sources/scalac/ast/TreeGen.java
+++ b/sources/scalac/ast/TreeGen.java
@@ -1116,7 +1116,8 @@ public class TreeGen implements Kinds, Modifiers, TypeTags {
Type[] parentTypes = {
definitions.ANYREF_TYPE(),
definitions.FUNCTION_TYPE(argtypes, restype) };
- Symbol clazz = owner.newAnonymousClass(pos);
+ Name name = Names.ANON_CLASS_NAME.toTypeName();
+ Symbol clazz = owner.newAnonymousClass(pos, name);
clazz.setInfo(Type.compoundType(parentTypes, new Scope(), clazz));
clazz.allConstructors().setInfo(
Type.MethodType(Symbol.EMPTY_ARRAY, clazz.typeConstructor()));
@@ -1138,7 +1139,8 @@ public class TreeGen implements Kinds, Modifiers, TypeTags {
public Tree mkPartialFunction(int pos, Tree applyVisitor, Tree isDefinedAtVisitor,
Type pattype, Type restype, Symbol owner) {
- Symbol clazz = owner.newAnonymousClass(pos);
+ Name name = Names.ANON_CLASS_NAME.toTypeName();
+ Symbol clazz = owner.newAnonymousClass(pos, name);
Type[] parentTypes = {
definitions.ANYREF_TYPE(),
definitions.PARTIALFUNCTION_TYPE(pattype, restype)};
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index d08bd9b79a..f3bf69bd3b 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -270,9 +270,8 @@ public abstract class Symbol implements Modifiers, Kinds {
}
/** Creates a new anonymous class owned by this symbol. */
- public final ClassSymbol newAnonymousClass(int pos) {
+ public final ClassSymbol newAnonymousClass(int pos, Name name) {
assert isTerm(): Debug.show(this);
- Name name = Names.ANON_CLASS_NAME.toTypeName();
return newClass(pos, 0, name, IS_ANONYMOUS, NONE);
}