diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-06-30 20:59:49 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-06-30 20:59:49 +0000 |
commit | d6519af64cab257fd45d12b818b2117e9c0f5440 (patch) | |
tree | 25fcaf1497bdb439caa791bc74fd5de40dda3c7c /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | a784a5846bbddea5321aa742041dbf8b2f87cbae (diff) | |
download | scala-d6519af64cab257fd45d12b818b2117e9c0f5440.tar.gz scala-d6519af64cab257fd45d12b818b2117e9c0f5440.tar.bz2 scala-d6519af64cab257fd45d12b818b2117e9c0f5440.zip |
minor cleanups for named args
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 90a680a514..b0226af4e3 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -274,8 +274,7 @@ trait Typers { self: Analyzer => case _ => ex.getMessage() } - if (context.retyping) context.error(pos, msg) - else context.unit.error(pos, msg) + context.error(pos, msg) if (sym == ObjectClass) throw new FatalError("cannot redefine root "+sym) case _ => @@ -1919,7 +1918,7 @@ trait Typers { self: Analyzer => def shapeType(arg: Tree): Type = arg match { case Function(vparams, body) => functionType(vparams map (vparam => AnyClass.tpe), shapeType(body)) - case a @ Assign(Ident(name), rhs) if a.namedArg => + case AssignOrNamedArg(Ident(name), rhs) => NamedType(name, shapeType(rhs)) case _ => NothingClass.tpe @@ -1950,7 +1949,7 @@ trait Typers { self: Analyzer => val argtpes = new ListBuffer[Type] val amode = argMode(fun, mode) val args1 = args map { - case arg @ Assign(Ident(name), rhs) if arg.namedArg => + case arg @ AssignOrNamedArg(Ident(name), rhs) => // named args: only type the righthand sides ("unknown identifier" errors otherwise) val rhs1 = typedArg(rhs, amode, 0, WildcardType) argtpes += NamedType(name, rhs1.tpe.deconst) @@ -2350,7 +2349,7 @@ trait Typers { self: Analyzer => names ++= (if (isJava) annScope.iterator else typedFun.tpe.params.iterator) val nvPairs = args map { - case arg @ Assign(Ident(name), rhs) if arg.namedArg => + case arg @ AssignOrNamedArg(Ident(name), rhs) => val sym = if (isJava) annScope.lookupWithContext(name)(context.owner) else typedFun.tpe.params.find(p => p.name == name).getOrElse(NoSymbol) if (sym == NoSymbol) { @@ -3541,6 +3540,9 @@ trait Typers { self: Analyzer => case Assign(lhs, rhs) => typedAssign(lhs, rhs) + case AssignOrNamedArg(lhs, rhs) => // called by NamesDefaults in silent typecheck + typedAssign(lhs, rhs) + case If(cond, thenp, elsep) => typedIf(cond, thenp, elsep) |