From c0a953cf1dcba1bfa3bee76226742f150fae0563 Mon Sep 17 00:00:00 2001 From: Sandor Fehervari Date: Mon, 29 Apr 2024 09:35:22 +0200 Subject: [PATCH 1/4] Dirty way of making Enums Haxe 4.3 compatible. The abstract type cannot be used as value anymore, it was a regression in 3.1.x onwards, and was fixed in 4.0 --- spaghetti-core/build.gradle | 1 + .../ast/internal/AbstractNodeSet.java | 1 + .../HaxeModuleProxyGeneratorVisitor.groovy | 10 ++-- .../enums/HaxeEnumGeneratorVisitor.groovy | 58 +++++++++++-------- 4 files changed, 41 insertions(+), 29 deletions(-) diff --git a/spaghetti-core/build.gradle b/spaghetti-core/build.gradle index 6ea798996..2bc1cabb7 100644 --- a/spaghetti-core/build.gradle +++ b/spaghetti-core/build.gradle @@ -59,6 +59,7 @@ sourceSets { } compileJava { + options.compilerArgs << '-Xlint:deprecation' dependsOn generateGrammar } diff --git a/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java b/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java index 693614813..d95e972a3 100644 --- a/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java +++ b/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java @@ -177,6 +177,7 @@ public boolean retainAllInternal(Collection c) { return delegate.values().retainAll(c); } + @Deprecated @Override public void clear() { throw new UnsupportedOperationException("External modification of the AST is not allowed"); diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy index 4320ccc2a..3ff8a742e 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy @@ -14,12 +14,14 @@ class HaxeModuleProxyGeneratorVisitor extends AbstractHaxeGeneratorVisitor { String visitModuleNode(ModuleNode node) { return \ """@:final class __${node.alias}Proxy { - public function new() {} + public var ${node.alias}: __${node.alias}Proxy; + public function new() { + ${node.alias} = this; + } ${ node.methods*.accept(new MethodVisitor(node)).join("") + node.accept(new QualifiedConstVisitor(node)) + - node.accept(new QualifiedEnumVisitor(node)) + - "\tpublic var ${node.alias} = this;\n" + node.accept(new QualifiedEnumVisitor(node)) }} """ } @@ -51,7 +53,7 @@ ${ @Override String visitEnumNode(EnumNode enumNode) { - return " public var ${enumNode.name} = ${qualifyingNode.name}.${enumNode.name};\n" + return " public var ${enumNode.name} = ${qualifyingNode.name}.${enumNode.name}._extern;\n" } @Override diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy index dbf68731c..7df6d9a61 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy @@ -11,16 +11,12 @@ class HaxeEnumGeneratorVisitor extends StringModuleVisitorBase { def enumName = node.name return \ -"""abstract ${enumName}(Int) { +""" + enum abstract ${enumName}(Int) { ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} - static var _values = { - #if js - var thisValue = ${enumName}; - ${node.values.collect { entry -> "untyped __js__(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} - #end - [${node.values.collect { entry -> "Std.string(${entry.name}) => ${entry.name}" }.join(", ")}]; - } + public static var _extern = ${enumName}_Impl; + static var _names = [${node.values.collect { entry -> "Std.string(${entry.name}) => \"${entry.name}\"" }.join(", ")}]; inline function new(value:Int) { @@ -31,30 +27,42 @@ ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} return this; } - @:from public static function fromValue(value:Int) { - var key: String = Std.string(value); - if (!_values.exists(key)) { - throw "Invalid value for ${enumName}: " + value; - } - return _values[key]; - } - @:to public inline function name():String { return _names[Std.string(this)]; } +} + +class ${enumName}_Impl { +${node.values.collect { entry -> "public static var ${entry.name} = cast ${entry.value};"}.join("\n\t\t")} - @:from public static inline function valueOf(name:String) { - return switch(name) - { + static var _values = { + #if js + var thisValue = ${enumName}_Impl; + ${node.values.collect { entry -> "untyped __js__(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} + #end + [${node.values.collect { entry -> "Std.string(${entry.name}) => ${entry.name}" }.join(", ")}]; + } + + public static function values():Array<${enumName}> { + return [${node.values.collect { it }.join(", ")}]; + } + + @:from public static inline function valueOf(name:String) { + return switch(name) + { ${node.values.collect {" case \"${it}\": ${it};"}.join("\n")} - default: throw "Invalid name for ${enumName}: " + name; - }; - } + default: throw "Invalid name for ${enumName}: " + name; + }; + } - public static function values():Array<${enumName}> { - return [${node.values.collect { it }.join(", ")}]; + @:from public static function fromValue(value:Int) { + var key: String = Std.string(value); + if (!_values.exists(key)) { + throw "Invalid value for ${enumName}: " + value; + } + return _values[key]; + } } -} """ } From d9948ef7711beb22b35107c65dd41f3c74f6c5cf Mon Sep 17 00:00:00 2001 From: Sandor Fehervari Date: Wed, 8 May 2024 15:47:57 +0200 Subject: [PATCH 2/4] Revert "Dirty way of making Enums Haxe 4.3 compatible. The abstract type cannot be used as value anymore, it was a regression in 3.1.x onwards, and was fixed in 4.0" This reverts commit c0a953cf1dcba1bfa3bee76226742f150fae0563. --- spaghetti-core/build.gradle | 1 - .../ast/internal/AbstractNodeSet.java | 1 - .../HaxeModuleProxyGeneratorVisitor.groovy | 10 ++-- .../enums/HaxeEnumGeneratorVisitor.groovy | 58 ++++++++----------- 4 files changed, 29 insertions(+), 41 deletions(-) diff --git a/spaghetti-core/build.gradle b/spaghetti-core/build.gradle index 2bc1cabb7..6ea798996 100644 --- a/spaghetti-core/build.gradle +++ b/spaghetti-core/build.gradle @@ -59,7 +59,6 @@ sourceSets { } compileJava { - options.compilerArgs << '-Xlint:deprecation' dependsOn generateGrammar } diff --git a/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java b/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java index d95e972a3..693614813 100644 --- a/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java +++ b/spaghetti-core/src/main/java/com/prezi/spaghetti/ast/internal/AbstractNodeSet.java @@ -177,7 +177,6 @@ public boolean retainAllInternal(Collection c) { return delegate.values().retainAll(c); } - @Deprecated @Override public void clear() { throw new UnsupportedOperationException("External modification of the AST is not allowed"); diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy index 3ff8a742e..4320ccc2a 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy @@ -14,14 +14,12 @@ class HaxeModuleProxyGeneratorVisitor extends AbstractHaxeGeneratorVisitor { String visitModuleNode(ModuleNode node) { return \ """@:final class __${node.alias}Proxy { - public var ${node.alias}: __${node.alias}Proxy; - public function new() { - ${node.alias} = this; - } + public function new() {} ${ node.methods*.accept(new MethodVisitor(node)).join("") + node.accept(new QualifiedConstVisitor(node)) + - node.accept(new QualifiedEnumVisitor(node)) + node.accept(new QualifiedEnumVisitor(node)) + + "\tpublic var ${node.alias} = this;\n" }} """ } @@ -53,7 +51,7 @@ ${ @Override String visitEnumNode(EnumNode enumNode) { - return " public var ${enumNode.name} = ${qualifyingNode.name}.${enumNode.name}._extern;\n" + return " public var ${enumNode.name} = ${qualifyingNode.name}.${enumNode.name};\n" } @Override diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy index 7df6d9a61..dbf68731c 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy @@ -11,12 +11,16 @@ class HaxeEnumGeneratorVisitor extends StringModuleVisitorBase { def enumName = node.name return \ -""" - enum abstract ${enumName}(Int) { +"""abstract ${enumName}(Int) { ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} - public static var _extern = ${enumName}_Impl; - + static var _values = { + #if js + var thisValue = ${enumName}; + ${node.values.collect { entry -> "untyped __js__(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} + #end + [${node.values.collect { entry -> "Std.string(${entry.name}) => ${entry.name}" }.join(", ")}]; + } static var _names = [${node.values.collect { entry -> "Std.string(${entry.name}) => \"${entry.name}\"" }.join(", ")}]; inline function new(value:Int) { @@ -27,42 +31,30 @@ ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} return this; } + @:from public static function fromValue(value:Int) { + var key: String = Std.string(value); + if (!_values.exists(key)) { + throw "Invalid value for ${enumName}: " + value; + } + return _values[key]; + } + @:to public inline function name():String { return _names[Std.string(this)]; } -} - -class ${enumName}_Impl { -${node.values.collect { entry -> "public static var ${entry.name} = cast ${entry.value};"}.join("\n\t\t")} - static var _values = { - #if js - var thisValue = ${enumName}_Impl; - ${node.values.collect { entry -> "untyped __js__(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} - #end - [${node.values.collect { entry -> "Std.string(${entry.name}) => ${entry.name}" }.join(", ")}]; - } - - public static function values():Array<${enumName}> { - return [${node.values.collect { it }.join(", ")}]; - } - - @:from public static inline function valueOf(name:String) { - return switch(name) - { + @:from public static inline function valueOf(name:String) { + return switch(name) + { ${node.values.collect {" case \"${it}\": ${it};"}.join("\n")} - default: throw "Invalid name for ${enumName}: " + name; - }; - } + default: throw "Invalid name for ${enumName}: " + name; + }; + } - @:from public static function fromValue(value:Int) { - var key: String = Std.string(value); - if (!_values.exists(key)) { - throw "Invalid value for ${enumName}: " + value; - } - return _values[key]; - } + public static function values():Array<${enumName}> { + return [${node.values.collect { it }.join(", ")}]; } +} """ } From aaaa516138f7912431dd3ed0c2906e7a1ab52e67 Mon Sep 17 00:00:00 2001 From: Sandor Fehervari Date: Thu, 9 May 2024 09:07:27 +0200 Subject: [PATCH 3/4] Fixing abstract enum generation in haxe 4 with @:runtimeValue annotation --- .../spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy index dbf68731c..8413dff9d 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy @@ -11,7 +11,9 @@ class HaxeEnumGeneratorVisitor extends StringModuleVisitorBase { def enumName = node.name return \ -"""abstract ${enumName}(Int) { +""" +@:runtimeValue +enum abstract ${enumName}(Int) { ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} static var _values = { From 9586ed264df3765727701fe202eba26bf67bd1f1 Mon Sep 17 00:00:00 2001 From: Sandor Fehervari Date: Thu, 9 May 2024 09:07:50 +0200 Subject: [PATCH 4/4] Fixed compiler warnings --- .../src/main/haxe/prezi/test/client/Client.hx | 4 ++-- .../module/src/spaghetti/test/TestModule.hx | 2 +- .../HaxeModuleAccessorGeneratorVisitor.groovy | 2 +- .../HaxeModuleProxyGeneratorVisitor.groovy | 8 +++++--- .../HaxeDependentConstGeneratorVisitor.groovy | 2 +- .../HaxeDependentEnumGeneratorVisitor.groovy | 2 +- .../type/enums/HaxeEnumGeneratorVisitor.groovy | 2 +- ...xeModuleAccessorGeneratorVisitorTest.groovy | 2 +- .../enums/HaxeEnumGeneratorVisitorTest.groovy | 18 +++++++++--------- 9 files changed, 22 insertions(+), 20 deletions(-) diff --git a/spaghetti-gradle-example/app/src/main/haxe/prezi/test/client/Client.hx b/spaghetti-gradle-example/app/src/main/haxe/prezi/test/client/Client.hx index 2d27b8a56..58ebaf193 100644 --- a/spaghetti-gradle-example/app/src/main/haxe/prezi/test/client/Client.hx +++ b/spaghetti-gradle-example/app/src/main/haxe/prezi/test/client/Client.hx @@ -26,8 +26,8 @@ class Client { }); trace("TestStuff.doSomething(): " + testStuff.doSomething("pre", "text", "pos")); - if (untyped __js__("typeof(document)") != "undefined") { - var canvas = untyped __js__("document.getElementById('canvas')"); + if (js.Syntax.code("typeof(document)") != "undefined") { + var canvas = js.Syntax.code("document.getElementById('canvas')"); testStuff.drawSomething(canvas); } diff --git a/spaghetti-haxe-support/src/integTest/module/src/spaghetti/test/TestModule.hx b/spaghetti-haxe-support/src/integTest/module/src/spaghetti/test/TestModule.hx index e2183f671..686d65b6c 100644 --- a/spaghetti-haxe-support/src/integTest/module/src/spaghetti/test/TestModule.hx +++ b/spaghetti-haxe-support/src/integTest/module/src/spaghetti/test/TestModule.hx @@ -52,6 +52,6 @@ class TestModule { } public static function getExternalDependencyVersion(): String { - return untyped __js__('libWithVersion.version'); + return js.Syntax.code('libWithVersion.version'); } } diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitor.groovy index 0608ed879..0d0cb99b9 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitor.groovy @@ -21,7 +21,7 @@ class HaxeModuleAccessorGeneratorVisitor extends AbstractHaxeGeneratorVisitor { return \ """@:final class ${node.alias} { - static var __module:Dynamic = untyped __js__('${GeneratorUtils.createModuleAccessor(node.name, format)}'); + static var __module:Dynamic = js.Syntax.code('${GeneratorUtils.createModuleAccessor(node.name, format)}'); ${node.methods*.accept(new MethodVisitor(node)).join("")} } diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy index 4320ccc2a..f1fb8244e 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/impl/HaxeModuleProxyGeneratorVisitor.groovy @@ -14,12 +14,14 @@ class HaxeModuleProxyGeneratorVisitor extends AbstractHaxeGeneratorVisitor { String visitModuleNode(ModuleNode node) { return \ """@:final class __${node.alias}Proxy { - public function new() {} + public var ${node.alias}: __${node.alias}Proxy; + public function new() { + ${node.alias} = this; + } ${ node.methods*.accept(new MethodVisitor(node)).join("") + node.accept(new QualifiedConstVisitor(node)) + - node.accept(new QualifiedEnumVisitor(node)) + - "\tpublic var ${node.alias} = this;\n" + node.accept(new QualifiedEnumVisitor(node)) }} """ } diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/consts/HaxeDependentConstGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/consts/HaxeDependentConstGeneratorVisitor.groovy index 8f635583b..cc4db7b2a 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/consts/HaxeDependentConstGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/consts/HaxeDependentConstGeneratorVisitor.groovy @@ -38,7 +38,7 @@ ${node.entries*.accept(new ConstEntryVisitor(node.name)).join("")} String value = HaxeUtils.toPrimitiveString(node.value) // TODO [knuton] Enable after migratory period // String moduleAccessor = GeneratorUtils.createModuleAccessor(foreignModuleName, format) - // String value = "untyped __js__('${moduleAccessor}[\"${constName}\"][\"${node.name}\"]')" + // String value = "js.Syntax.code('${moduleAccessor}[\"${constName}\"][\"${node.name}\"]')" return "\tpublic static inline var ${node.name}:${type} = ${value};\n" } } diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeDependentEnumGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeDependentEnumGeneratorVisitor.groovy index 7916eed6a..e1afc99ce 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeDependentEnumGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeDependentEnumGeneratorVisitor.groovy @@ -23,7 +23,7 @@ class HaxeDependentEnumGeneratorVisitor extends HaxeEnumGeneratorVisitor { return new HaxeEnumGeneratorVisitor.EnumValueVisitor(enumName) { @Override String generateValueExpression(EnumValueNode node) { - return "untyped __js__('${GeneratorUtils.createModuleAccessor(foreignModuleName, format)}[\"${enumName}\"][\"${node.name}\"]')" + return "js.Syntax.code('${GeneratorUtils.createModuleAccessor(foreignModuleName, format)}[\"${enumName}\"][\"${node.name}\"]')" } } } diff --git a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy index 8413dff9d..683a67204 100644 --- a/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy +++ b/spaghetti-haxe-support/src/main/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitor.groovy @@ -19,7 +19,7 @@ ${node.values*.accept(createEnumValueVisitor(node.name)).join("\n")} static var _values = { #if js var thisValue = ${enumName}; - ${node.values.collect { entry -> "untyped __js__(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} + ${node.values.collect { entry -> "js.Syntax.code(\"thisValue[thisValue.${entry.name}] = '${entry.name}'\");" }.join("\n\t\t")} #end [${node.values.collect { entry -> "Std.string(${entry.name}) => ${entry.name}" }.join(", ")}]; } diff --git a/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitorTest.groovy b/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitorTest.groovy index 299b404cf..e2e0e8eaa 100644 --- a/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitorTest.groovy +++ b/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/access/HaxeModuleAccessorGeneratorVisitorTest.groovy @@ -33,7 +33,7 @@ module com.example.test { expect: result == """@:final class TestModule { - static var __module:Dynamic = untyped __js__('Spaghetti["dependencies"]["com.example.test"]["module"]'); + static var __module:Dynamic = js.Syntax.code('Spaghetti["dependencies"]["com.example.test"]["module"]'); /** * Initializes module. diff --git a/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitorTest.groovy b/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitorTest.groovy index 28c006e88..1b87347fc 100644 --- a/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitorTest.groovy +++ b/spaghetti-haxe-support/src/test/groovy/com/prezi/spaghetti/haxe/type/enums/HaxeEnumGeneratorVisitorTest.groovy @@ -28,9 +28,9 @@ class HaxeEnumGeneratorVisitorTest extends EnumGeneratorSpecification { expect: result == expectedWith( - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"ALMA\"]')", - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"BELA\"]')", - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"GEZA\"]')") + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"ALMA\"]')", + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"BELA\"]')", + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"MyEnum\"][\"GEZA\"]')") } def "generate dependent definition for wrapperless format"() { @@ -38,9 +38,9 @@ class HaxeEnumGeneratorVisitorTest extends EnumGeneratorSpecification { expect: result == expectedWith( - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"ALMA\"]')", - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"BELA\"]')", - "untyped __js__('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"GEZA\"]')") + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"ALMA\"]')", + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"BELA\"]')", + "js.Syntax.code('Spaghetti[\"dependencies\"][\"test\"][\"module\"][\"MyEnum\"][\"GEZA\"]')") } private static String expectedWith(String first, String second, String third) { @@ -56,9 +56,9 @@ class HaxeEnumGeneratorVisitorTest extends EnumGeneratorSpecification { static var _values = { #if js var thisValue = MyEnum; - untyped __js__("thisValue[thisValue.ALMA] = 'ALMA'"); - untyped __js__("thisValue[thisValue.BELA] = 'BELA'"); - untyped __js__("thisValue[thisValue.GEZA] = 'GEZA'"); + js.Syntax.code("thisValue[thisValue.ALMA] = 'ALMA'"); + js.Syntax.code("thisValue[thisValue.BELA] = 'BELA'"); + js.Syntax.code("thisValue[thisValue.GEZA] = 'GEZA'"); #end [Std.string(ALMA) => ALMA, Std.string(BELA) => BELA, Std.string(GEZA) => GEZA]; }