diff --git a/tests/server/src/cases/issues/Issue12001.hx b/tests/server/src/cases/issues/Issue12001.hx new file mode 100644 index 00000000000..e0bcbb2a7f7 --- /dev/null +++ b/tests/server/src/cases/issues/Issue12001.hx @@ -0,0 +1,29 @@ +package cases.issues; + +import haxe.display.Diagnostic; + +class Issue12001 extends TestCase { + function testDefineType(_) { + vfs.putContent("Macro.hx", getTemplate("issues/Issue12001/Macro.hx")); + vfs.putContent("Empty.hx", getTemplate("Empty.hx")); + var args = ["-main", "Empty", "--macro", "Macro.defineType()"]; + runHaxe(args); + assertSuccess(); + + runHaxe(args); + Assert.isFalse(0 == errorMessages.length); + assertErrorMessage("Cannot redefine module Foo"); + } + + function testDefineModule(_) { + vfs.putContent("Macro.hx", getTemplate("issues/Issue12001/Macro.hx")); + vfs.putContent("Empty.hx", getTemplate("Empty.hx")); + var args = ["-main", "Empty", "--macro", "Macro.defineModule()"]; + runHaxe(args); + assertSuccess(); + + runHaxe(args); + Assert.isFalse(0 == errorMessages.length); + assertErrorMessage("Cannot redefine module Bar"); + } +} diff --git a/tests/server/test/templates/issues/Issue12001/Macro.hx b/tests/server/test/templates/issues/Issue12001/Macro.hx new file mode 100644 index 00000000000..ceb17417576 --- /dev/null +++ b/tests/server/test/templates/issues/Issue12001/Macro.hx @@ -0,0 +1,25 @@ +import haxe.macro.Context; + +function defineType() { + Context.onAfterInitMacros(() -> { + Context.defineType({ + pos: Context.currentPos(), + pack: [], + name: "Foo", + kind: TDAbstract(macro:String, [], [], []), + fields: [] + }); + }); +} + +function defineModule() { + Context.onAfterInitMacros(() -> { + Context.defineModule("Bar", [{ + pos: Context.currentPos(), + pack: [], + name: "Bar", + kind: TDAbstract(macro:String, [], [], []), + fields: [] + }]); + }); +}