aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/typer/Variances.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-19 12:44:27 +0100
committerMartin Odersky <odersky@gmail.com>2017-04-06 13:15:29 +0200
commit8d33ca7460493427055daaecca53c66127772831 (patch)
tree2c8f539d138a1374dde36c58ffb2f1d4c0841dfa /compiler/src/dotty/tools/dotc/typer/Variances.scala
parent15317555c94f613f266d7b0fb0a75b0b6ed2da6d (diff)
downloaddotty-8d33ca7460493427055daaecca53c66127772831.tar.gz
dotty-8d33ca7460493427055daaecca53c66127772831.tar.bz2
dotty-8d33ca7460493427055daaecca53c66127772831.zip
Merge MethodType and PolyType functionality where possible
Two benefits: (1) less code. (2) finding subtle bugs about parameter dependent method types. By merging with PolyTypes we are forced to take parameter dependencies into account.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/typer/Variances.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/typer/Variances.scala4
1 files changed, 1 insertions, 3 deletions
diff --git a/compiler/src/dotty/tools/dotc/typer/Variances.scala b/compiler/src/dotty/tools/dotc/typer/Variances.scala
index 83ac23f7e..aeeef0275 100644
--- a/compiler/src/dotty/tools/dotc/typer/Variances.scala
+++ b/compiler/src/dotty/tools/dotc/typer/Variances.scala
@@ -79,7 +79,7 @@ object Variances {
varianceInType(parent)(tparam) & varianceInType(rinfo)(tparam)
case tp: RecType =>
varianceInType(tp.parent)(tparam)
- case tp: MethodType =>
+ case tp: MethodOrPoly =>
flip(varianceInTypes(tp.paramInfos)(tparam)) & varianceInType(tp.resultType)(tparam)
case ExprType(restpe) =>
varianceInType(restpe)(tparam)
@@ -94,8 +94,6 @@ object Variances {
v
}
varianceInArgs(varianceInType(tycon)(tparam), args, tycon.typeParams)
- case tp: PolyType =>
- flip(varianceInTypes(tp.paramInfos)(tparam)) & varianceInType(tp.resultType)(tparam)
case AnnotatedType(tp, annot) =>
varianceInType(tp)(tparam) & varianceInAnnot(annot)(tparam)
case tp: AndOrType =>