aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-06-29 19:05:20 +0200
committerMartin Odersky <odersky@gmail.com>2016-07-11 13:34:59 +0200
commitaf43d325b778973ad9e144b5c27c455febb98890 (patch)
tree7803923eade05a15f0a5bbe3ef8b6fb86390643b /src/dotty/tools/dotc/typer/Typer.scala
parent850dc6f2fb3b6228f2586ce0790621e80f664afe (diff)
downloaddotty-af43d325b778973ad9e144b5c27c455febb98890.tar.gz
dotty-af43d325b778973ad9e144b5c27c455febb98890.tar.bz2
dotty-af43d325b778973ad9e144b5c27c455febb98890.zip
Abstract type parameters out from type symbols
In the new hk scheme, a type parameter can be represented by a refinement without a corresponding symbol. Therefore, we need to disentangle the info inherent in a type parameter from the contents of a type symbol. We achieve this by creating a common super trait "MemerInfo" of Symbol and RefinedType.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index fb3418563..225516503 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -943,14 +943,14 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
ctx.error(d"wrong number of type arguments for ${tpt1.tpe}, should be ${tparams.length}", tree.pos)
args = args.take(tparams.length)
}
- def typedArg(arg: untpd.Tree, tparam: Symbol) = {
+ def typedArg(arg: untpd.Tree, tparam: MemberBinding) = {
val (desugaredArg, argPt) =
if (ctx.mode is Mode.Pattern)
- (if (isVarPattern(arg)) desugar.patternVar(arg) else arg, tparam.info)
+ (if (isVarPattern(arg)) desugar.patternVar(arg) else arg, tparam.memberBounds)
else
(arg, WildcardType)
val arg1 = typed(desugaredArg, argPt)
- adaptTypeArg(arg1, tparam.info)
+ adaptTypeArg(arg1, tparam.memberBounds)
}
args.zipWithConserve(tparams)(typedArg(_, _)).asInstanceOf[List[Tree]]
}