diff options
author | Martin Odersky <odersky@gmail.com> | 2010-08-18 17:12:44 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-08-18 17:12:44 +0000 |
commit | 4fb0d53f1c59c7b6ad0f2c79ac1b0c555e4cef91 (patch) | |
tree | d908d2a8734948060c7d1c98cc3223f2f8982264 | |
parent | e1232ab57a1f1e669b985debcfd0271768732384 (diff) | |
download | scala-4fb0d53f1c59c7b6ad0f2c79ac1b0c555e4cef91.tar.gz scala-4fb0d53f1c59c7b6ad0f2c79ac1b0c555e4cef91.tar.bz2 scala-4fb0d53f1c59c7b6ad0f2c79ac1b0c555e4cef91.zip |
Closes #3756. No review.
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala | 10 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Mixin.scala | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 84fca0436d..244df8179a 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -462,13 +462,15 @@ abstract class ClassfileParser { } sym } - def lookupClass(name: Name) = + + def lookupClass(name: Name) = try { if (name.pos('.') == name.length) definitions.getMember(definitions.EmptyPackageClass, name.toTypeName) else - //definitions.getClass(name) // see ticket #2464 - try { definitions.getClass(name) } - catch { case _: FatalError => loadClassSymbol(name) } + definitions.getClass(name) // see tickets #2464, #3756 + } catch { + case _: FatalError => loadClassSymbol(name) + } innerClasses.get(name) match { case Some(entry) => diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index a9922a50f2..547d3cc096 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -488,8 +488,10 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { EmptyTree } } else { - if (currentOwner.isTrait && sym.isSetter) + if (currentOwner.isTrait && sym.isSetter && !atPhase(currentRun.picklerPhase)(sym.isDeferred)) { + println("add TraitSetter to "+sym) sym.addAnnotation(AnnotationInfo(TraitSetterAnnotationClass.tpe, List(), List())) + } tree } case Apply(tapp @ TypeApply(fn, List(arg)), List()) => |