diff --git a/haxe/ui/macros/Macros.hx b/haxe/ui/macros/Macros.hx index 7918a928b..d0551c972 100644 --- a/haxe/ui/macros/Macros.hx +++ b/haxe/ui/macros/Macros.hx @@ -595,7 +595,7 @@ class Macros { buildStyles(builder); buildBindings(builder); - if (builder.hasInterface("haxe.ui.core.IClonable")) { + if (builder.hasInterface("haxe.ui.core.IClonable") && !builder.isAbstractClass) { buildClonable(builder); } diff --git a/haxe/ui/macros/helpers/ClassBuilder.hx b/haxe/ui/macros/helpers/ClassBuilder.hx index c137bf005..d9cf17fb7 100644 --- a/haxe/ui/macros/helpers/ClassBuilder.hx +++ b/haxe/ui/macros/helpers/ClassBuilder.hx @@ -114,6 +114,10 @@ class ClassBuilder { } } + public var isAbstractClass(get, null):Bool; + private function get_isAbstractClass():Bool { + return #if (haxe_ver >= 4.2) classType.isAbstract #else false #end; + } public function findField(name:String):Field { var r = null;