@@ -674,9 +674,11 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
674674
675675 def typedIf (tree : untpd.If , pt : Type )(implicit ctx : Context ): Tree = track(" typedIf" ) {
676676 val cond1 = typed(tree.cond, defn.BooleanType )
677- val thenp1 = typed(tree.thenp, pt.notApplied)
678- val elsep1 = typed(tree.elsep orElse (untpd.unitLiteral withPos tree.pos), pt.notApplied)
679- val thenp2 :: elsep2 :: Nil = harmonize(thenp1 :: elsep1 :: Nil )
677+ val thenp2 :: elsep2 :: Nil = harmonic(harmonize) {
678+ val thenp1 = typed(tree.thenp, pt.notApplied)
679+ val elsep1 = typed(tree.elsep orElse (untpd.unitLiteral withPos tree.pos), pt.notApplied)
680+ thenp1 :: elsep1 :: Nil
681+ }
680682 assignType(cpy.If (tree)(cond1, thenp2, elsep2), thenp2, elsep2)
681683 }
682684
@@ -884,9 +886,9 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
884886 val sel1 = typedExpr(tree.selector)
885887 val selType = fullyDefinedType(sel1.tpe, " pattern selector" , tree.pos).widen
886888
887- val cases1 = typedCases(tree.cases, selType, pt.notApplied)
888- val cases2 = harmonize(cases1) .asInstanceOf [List [CaseDef ]]
889- assignType(cpy.Match (tree)(sel1, cases2 ), cases2 )
889+ val cases1 = harmonic(harmonize)( typedCases(tree.cases, selType, pt.notApplied) )
890+ .asInstanceOf [List [CaseDef ]]
891+ assignType(cpy.Match (tree)(sel1, cases1 ), cases1 )
890892 }
891893 }
892894
@@ -1011,10 +1013,12 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
10111013 }
10121014
10131015 def typedTry (tree : untpd.Try , pt : Type )(implicit ctx : Context ): Try = track(" typedTry" ) {
1014- val expr1 = typed(tree.expr, pt.notApplied)
1015- val cases1 = typedCases(tree.cases, defn.ThrowableType , pt.notApplied)
1016+ val expr2 :: cases2x = harmonic(harmonize) {
1017+ val expr1 = typed(tree.expr, pt.notApplied)
1018+ val cases1 = typedCases(tree.cases, defn.ThrowableType , pt.notApplied)
1019+ expr1 :: cases1
1020+ }
10161021 val finalizer1 = typed(tree.finalizer, defn.UnitType )
1017- val expr2 :: cases2x = harmonize(expr1 :: cases1)
10181022 val cases2 = cases2x.asInstanceOf [List [CaseDef ]]
10191023 assignType(cpy.Try (tree)(expr2, cases2, finalizer1), expr2, cases2)
10201024 }
0 commit comments