diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Infer.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Infer.scala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala index 2313822663..dc143666a1 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala @@ -1164,7 +1164,15 @@ trait Infer { val treeSubst = new TreeTypeSubstituter(okparams, okargs) treeSubst.traverse(fn) treeSubst.traverseTrees(args) - leftUndet + if(leftUndet nonEmpty) { // #3890 + val leftUndet1 = treeSubst.typeSubst mapOver leftUndet + if(leftUndet ne leftUndet1) { + val symSubst = new TreeSymSubstTraverser(leftUndet, leftUndet1) + symSubst.traverse(fn) + symSubst.traverseTrees(args) + } + leftUndet1 + } else leftUndet } catch { case ex: NoInstance => errorTree(fn, |