Browse Source

[tests] add test

closes #9381
Simon Krajewski 3 years ago
parent
commit
0c3a5a2440

+ 2 - 0
tests/misc/projects/Issue9381/FinalDisplay.hx

@@ -0,0 +1,2 @@
+@:autoBuild(FinalDisplayBuilder.build())
+interface FinalDisplay {}

+ 15 - 0
tests/misc/projects/Issue9381/FinalDisplayBuilder.hx

@@ -0,0 +1,15 @@
+import haxe.macro.Context;
+
+class FinalDisplayBuilder {
+	#if macro
+	public static function build() {
+		var cls = Context.getLocalClass().get();
+		if (!cls.isFinal) {
+			Context.fatalError('class needs to be final', cls.pos);
+		} else {
+			Sys.stderr().writeString(cls.name + " is very final\n");
+		}
+		return null;
+	}
+	#end
+}

+ 4 - 0
tests/misc/projects/Issue9381/Main.hx

@@ -0,0 +1,4 @@
+final class FinalDisplayTest implements FinalDisplay {} // here it works fine
+final class FinalDisplayTestFailed implements FinalDisplay {} // seconds class shows: class needs to be final diagnostics(2)
+
+function main() {}

+ 1 - 0
tests/misc/projects/Issue9381/compile.hxml

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

+ 2 - 0
tests/misc/projects/Issue9381/compile.hxml.stderr

@@ -0,0 +1,2 @@
+FinalDisplayTestFailed is very final
+FinalDisplayTest is very final