@@ -674,9 +674,11 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
674
674
675
675
def typedIf (tree : untpd.If , pt : Type )(implicit ctx : Context ): Tree = track(" typedIf" ) {
676
676
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
+ }
680
682
assignType(cpy.If (tree)(cond1, thenp2, elsep2), thenp2, elsep2)
681
683
}
682
684
@@ -884,9 +886,9 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
884
886
val sel1 = typedExpr(tree.selector)
885
887
val selType = fullyDefinedType(sel1.tpe, " pattern selector" , tree.pos).widen
886
888
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 )
890
892
}
891
893
}
892
894
@@ -1011,10 +1013,12 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
1011
1013
}
1012
1014
1013
1015
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
+ }
1016
1021
val finalizer1 = typed(tree.finalizer, defn.UnitType )
1017
- val expr2 :: cases2x = harmonize(expr1 :: cases1)
1018
1022
val cases2 = cases2x.asInstanceOf [List [CaseDef ]]
1019
1023
assignType(cpy.Try (tree)(expr2, cases2, finalizer1), expr2, cases2)
1020
1024
}
0 commit comments