aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2016-10-25 17:52:19 +0200
committerGuillaume Martres <smarter@ubuntu.com>2016-10-25 17:53:37 +0200
commitf368dd523fd68bb5edc992676ae35b69bbd90db8 (patch)
treee3b29fd46849ee216818eb4e0c6ea0b10a6e14b8 /src
parenta4ac5e066ee3072a78eec1a4125cc46ba823d41b (diff)
downloaddotty-f368dd523fd68bb5edc992676ae35b69bbd90db8.tar.gz
dotty-f368dd523fd68bb5edc992676ae35b69bbd90db8.tar.bz2
dotty-f368dd523fd68bb5edc992676ae35b69bbd90db8.zip
Remove fixpoint computation of interpolateUndetVars
This is not necessary now that `variances` includes a fixpoint computation
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/typer/Inferencing.scala15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/dotty/tools/dotc/typer/Inferencing.scala b/src/dotty/tools/dotc/typer/Inferencing.scala
index 646fe3f3e..aede4974a 100644
--- a/src/dotty/tools/dotc/typer/Inferencing.scala
+++ b/src/dotty/tools/dotc/typer/Inferencing.scala
@@ -223,7 +223,6 @@ object Inferencing {
constr.println(s"qualifying undet vars: ${constraint.uninstVars filter qualifies map (tvar => s"$tvar / ${tvar.show}")}, constraint: ${constraint.show}")
val vs = variances(tp, qualifies)
- var changed = false
val hasUnreportedErrors = ctx.typerState.reporter match {
case r: StoreReporter if r.hasErrors => true
case _ => false
@@ -253,17 +252,13 @@ object Inferencing {
if (v != 0) {
typr.println(s"interpolate ${if (v == 1) "co" else "contra"}variant ${tvar.show} in ${tp.show}")
tvar.instantiate(fromBelow = v == 1)
- changed = true
}
}
- if (changed) // instantiations might have uncovered new typevars to interpolate
- interpolateUndetVars(tree, ownedBy)
- else
- for (tvar <- constraint.uninstVars)
- if (!(vs contains tvar) && qualifies(tvar)) {
- typr.println(s"instantiating non-occurring ${tvar.show} in ${tp.show} / $tp")
- tvar.instantiate(fromBelow = true)
- }
+ for (tvar <- constraint.uninstVars)
+ if (!(vs contains tvar) && qualifies(tvar)) {
+ typr.println(s"instantiating non-occurring ${tvar.show} in ${tp.show} / $tp")
+ tvar.instantiate(fromBelow = true)
+ }
}
if (constraint.uninstVars exists qualifies) interpolate()
}