aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-01-13 17:17:01 +0100
committerMartin Odersky <odersky@gmail.com>2014-01-13 17:17:01 +0100
commitbbe5f17384e8e1ed5492516ca0d9e397cd770823 (patch)
treef4913dd6a9181f10606a2482207cb4af5a0adad7 /src/dotty/tools/dotc/typer/Typer.scala
parent1743bd6c8e66cd12b3cc78c9a52c4c15d4bc9ec9 (diff)
downloaddotty-bbe5f17384e8e1ed5492516ca0d9e397cd770823.tar.gz
dotty-bbe5f17384e8e1ed5492516ca0d9e397cd770823.tar.bz2
dotty-bbe5f17384e8e1ed5492516ca0d9e397cd770823.zip
Fix to typedFunction
We now assume protoFormals and protoResultType as given in an expected function type, and check post-hoc that parameter lists have the right length.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 092c78d4f..18f6fa89a 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -520,8 +520,8 @@ class Typer extends Namer with Applications with Implicits {
else {
val params = args.asInstanceOf[List[untpd.ValDef]]
val (protoFormals, protoResult): (List[Type], Type) = pt match {
- case _ if pt isRef defn.FunctionClass(params.length) =>
- (pt.typeArgs take params.length, pt.typeArgs.last)
+ case _ if defn.isFunctionType(pt) =>
+ (pt.dealias.typeArgs.init, pt.dealias.typeArgs.last)
case SAMType(meth) =>
val mt @ MethodType(_, paramTypes) = meth.info
(paramTypes, mt.resultType)