diff options
author | Martin Odersky <odersky@gmail.com> | 2006-05-16 20:34:26 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-05-16 20:34:26 +0000 |
commit | 8ab0305de71c63d8dcdba023fdb305202da57edd (patch) | |
tree | 8a4ac8b0939347008c0be1042468d05a32994f17 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 5c11f952af7017a7d45b56f136a903e128aefcca (diff) | |
download | scala-8ab0305de71c63d8dcdba023fdb305202da57edd.tar.gz scala-8ab0305de71c63d8dcdba023fdb305202da57edd.tar.bz2 scala-8ab0305de71c63d8dcdba023fdb305202da57edd.zip |
bug fixes
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index d7390fd053..81ac6b0458 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -654,7 +654,12 @@ trait Typers requires Analyzer { result } def setterDef: DefDef = { - val setter = value.owner.info.decl(nme.getterToSetter(getter.name)).suchThat(.isSetter) + var setter = value.owner.info.decl(nme.getterToSetter(getter.name)).filter( + .tpe.=:=(MethodType(List(value.tpe.resultType), UnitClass.tpe))); + // note can't use .suchThat(.isSetter) above, + // because generated setters of abstract variables are not setters in this sense. + if (setter hasFlag OVERLOADED) setter = setter.alternatives.head; + // we will get a double definition error later anyway! assert(setter != NoSymbol, getter);//debug @@ -1564,7 +1569,9 @@ trait Typers requires Analyzer { if (util.Statistics.enabled) selcnt = selcnt + 1 var qual1 = typedQualifier(qual) if (name.isTypeName) qual1 = checkStable(qual1) - typedSelect(qual1, name) + val tree1 = typedSelect(qual1, name) + if (qual1.symbol == RootPackage) copy.Ident(tree1, name) + else tree1 case Ident(name) => idcnt = idcnt + 1 |