Bladeren bron

Make break/continue exprs not-nullable (#11269)

RblSb 2 jaren geleden
bovenliggende
commit
38e8d94f49
2 gewijzigde bestanden met toevoegingen van 9 en 0 verwijderingen
  1. 2 0
      src/typing/nullSafety.ml
  2. 7 0
      tests/nullsafety/src/cases/TestLoose.hx

+ 2 - 0
src/typing/nullSafety.ml

@@ -1041,6 +1041,8 @@ class expr_checker mode immediate_execution report =
 				| TMeta (_, e) -> self#is_nullable_expr e
 				| TThrow _ -> false
 				| TReturn _ -> false
+				| TContinue -> false
+				| TBreak -> false
 				| TBinop ((OpAssign | OpAssignOp _), _, right) -> self#is_nullable_expr right
 				| TBlock exprs ->
 					local_safety#block_declared;

+ 7 - 0
tests/nullsafety/src/cases/TestLoose.hx

@@ -113,4 +113,11 @@ class TestLoose {
 		}
 		shouldFail(if (foo()) {});
 	}
+
+	static function nullCoal_continue_shouldPass():Void {
+		for (i in 0...1) {
+			var i:String = staticVar ?? continue;
+			var i2:String = staticVar ?? break;
+		}
+	}
 }