summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2009-06-30 20:59:49 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2009-06-30 20:59:49 +0000
commitd6519af64cab257fd45d12b818b2117e9c0f5440 (patch)
tree25fcaf1497bdb439caa791bc74fd5de40dda3c7c /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parenta784a5846bbddea5321aa742041dbf8b2f87cbae (diff)
downloadscala-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.scala12
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)