diff options
author | Martin Odersky <odersky@gmail.com> | 2013-12-16 16:06:56 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-12-16 16:06:56 +0100 |
commit | 36476e46815370ca282cbb3179711125444319e9 (patch) | |
tree | 9c72dd79dea7852c7046460ff500ce48b26c2d62 /src/dotty/tools/dotc/typer/Applications.scala | |
parent | a0d9e2692f680c8ee0a93e87a5ceba93e081908b (diff) | |
download | dotty-36476e46815370ca282cbb3179711125444319e9.tar.gz dotty-36476e46815370ca282cbb3179711125444319e9.tar.bz2 dotty-36476e46815370ca282cbb3179711125444319e9.zip |
Default arguments now have a position
Diffstat (limited to 'src/dotty/tools/dotc/typer/Applications.scala')
-rw-r--r-- | src/dotty/tools/dotc/typer/Applications.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index dba95c689..5912e5e7b 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -78,6 +78,8 @@ trait Applications extends Compatibility { self: Typer => /** Signal failure with given message at position of the application itself */ protected def fail(msg: => String): Unit + protected def appPos: Position + /** If constructing trees, the current function part, which might be * affected by lifting. EmptyTree otherwise. */ @@ -246,7 +248,7 @@ trait Applications extends Compatibility { self: Typer => findDefaultGetter(n + numArgs(normalizedFun)) match { case dref: NamedType => liftFun() - addTyped(treeToArg(spliceMeth(Ident(dref), normalizedFun)), formal) + addTyped(treeToArg(spliceMeth(Ident(dref) withPos appPos, normalizedFun)), formal) matchArgs(args1, formals1, n + 1) case _ => missingArg(n) @@ -323,6 +325,7 @@ trait Applications extends Compatibility { self: Typer => ok = false def fail(msg: => String) = ok = false + def appPos = NoPosition def normalizedFun = EmptyTree init() } @@ -366,6 +369,8 @@ trait Applications extends Compatibility { self: Typer => typedArgBuf += seqToRepeated(seqLit) } + override def appPos = app.pos + def fail(msg: => String, arg: Trees.Tree[T]) = { ctx.error(msg, arg.pos) ok = false |