RblSb 2 ani în urmă
părinte
comite
3047c4310f

+ 28 - 0
tests/misc/projects/Issue10147/Main.hx

@@ -0,0 +1,28 @@
+typedef HasAString = {
+	text:String
+}
+typedef HasANullString = {
+	text:Null<String>
+}
+
+@:nullSafety(StrictThreaded)
+class Main {
+	static function main() {
+		final has:HasAString = {text: null};
+
+		final tmp = {text: null};
+		final typed:HasAString = tmp;
+
+		final tmp = {text: null};
+		final typed:{text:String} = tmp;
+
+		final tmp = {text: null};
+		final arr:Array<String> = [tmp.text];
+
+		// should pass
+		final tmp = {text: null};
+		final typed:{text:Null<String>} = tmp;
+		final typed2:HasANullString = tmp;
+		final typed3:HasANullString = typed;
+	}
+}

+ 2 - 0
tests/misc/projects/Issue10147/compile-fail.hxml

@@ -0,0 +1,2 @@
+--main Main
+--interp

+ 3 - 0
tests/misc/projects/Issue10147/compile-fail.hxml.stderr

@@ -0,0 +1,3 @@
+Main.hx:14: characters 3-32 : Null safety: Cannot unify { text : Null<String> } with HasAString
+Main.hx:17: characters 3-35 : Null safety: Cannot unify { text : Null<String> } with { text : String }
+Main.hx:20: characters 30-38 : Null safety: Cannot use nullable value of Null<String> as an item in Array<String>