summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-11-20 17:14:53 +0000
committerBurak Emir <emir@epfl.ch>2006-11-20 17:14:53 +0000
commit63ceabef32e3b26d188dc6eda39eb9bf6d549bd8 (patch)
tree7597bb2e01bdb06272a3492d7b12e6c9c069e7c2 /src
parentf05f4846f1f290faac95b5ecef65b6876d9502cd (diff)
downloadscala-63ceabef32e3b26d188dc6eda39eb9bf6d549bd8.tar.gz
scala-63ceabef32e3b26d188dc6eda39eb9bf6d549bd8.tar.bz2
scala-63ceabef32e3b26d188dc6eda39eb9bf6d549bd8.zip
preserving position in adapt -Xunapply extension
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index ff4c5f75d4..fdf221b951 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -583,7 +583,8 @@ trait Typers requires Analyzer {
if (obj != NoSymbol) tree.setSymbol(obj)
obj
}
- if (definitions.unapplyMember(consp.tpe).exists) Ident(consp).setType(consp.tpe)
+ if (definitions.unapplyMember(consp.tpe).exists)
+ atPos(tree.pos) {Ident(consp).setType(consp.tpe)}
else errorTree(tree, "" + clazz + " is not a case class, nor does it have unapply/unapplySeq method")
} else {
errorTree(tree, "" + clazz + " is neither a case class nor a sequence class")
@@ -1429,8 +1430,8 @@ trait Typers requires Analyzer {
val fun1 = typed(atPos(fun.pos) { Apply(Select(Ident(fun.symbol), unapp), List(arg)) }, EXPRmode, funPt)
if (fun1.tpe.isErroneous) setError(tree)
else {
- var formals0 = if(unapp.name == nme.unapply) optionOfProductElems(fun1.tpe)
- else unapplySeqResultToMethodSig(fun1.tpe)
+ val formals0 = if(unapp.name == nme.unapply) optionOfProductElems(fun1.tpe)
+ else unapplySeqResultToMethodSig(fun1.tpe)
val formals1 = formalTypes(formals0, args.length)
val args1 = typedArgs(args, mode, formals0, formals1)
UnApply(fun1, args1) setPos tree.pos setType pt