summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-06 15:26:53 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-06 15:26:53 +0000
commitdc2f20666817ee127588e1071e5f57a0faae7730 (patch)
tree0face5d8522cedf3bca595e658edd2314ab48385 /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent0f6e14043510907ef0ee0f6a86699064b017f0de (diff)
downloadscala-dc2f20666817ee127588e1071e5f57a0faae7730.tar.gz
scala-dc2f20666817ee127588e1071e5f57a0faae7730.tar.bz2
scala-dc2f20666817ee127588e1071e5f57a0faae7730.zip
fixed bugs 764 and 771
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 0305a6123f..7a452479d6 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -719,7 +719,8 @@ trait Typers requires Analyzer {
}
def addGetterSetter(stat: Tree): List[Tree] = stat match {
- case ValDef(mods, name, tpt, rhs) if !(mods hasFlag LOCAL) && !stat.symbol.isModuleVar =>
+ case ValDef(mods, name, tpt, rhs)
+ if !(mods hasFlag LOCAL) && !stat.symbol.isModuleVar =>
val vdef = copy.ValDef(stat, mods | PRIVATE | LOCAL, nme.getterToLocal(name), tpt, rhs)
val value = vdef.symbol
val getter = if (mods hasFlag DEFERRED) value else value.getter(value.owner)
@@ -769,8 +770,10 @@ trait Typers requires Analyzer {
// the following is necessary for templates generated later
new Namer(context.outer.make(templ, clazz, clazz.info.decls)).enterSyms(templ.body)
validateParentClasses(parents1, selfType)
- val body = if (phase.id <= currentRun.typerPhase.id) templ.body flatMap addGetterSetter
- else templ.body
+ val body =
+ if (phase.id <= currentRun.typerPhase.id && reporter.errors == 0)
+ templ.body flatMap addGetterSetter
+ else templ.body
val body1 = typedStats(body, templ.symbol)
copy.Template(templ, parents1, body1) setType clazz.tpe
}