From 0f7c094fed87058cf2c70c71e11700040eaf2e05 Mon Sep 17 00:00:00 2001 From: Robert Borghese <28355157+SomeRanDev@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:09:29 -0500 Subject: [PATCH] Replace pad nulls with default values always --- src/gdcompiler/GDCompiler.hx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gdcompiler/GDCompiler.hx b/src/gdcompiler/GDCompiler.hx index eb46683..dbc9801 100644 --- a/src/gdcompiler/GDCompiler.hx +++ b/src/gdcompiler/GDCompiler.hx @@ -22,6 +22,7 @@ import gdcompiler.config.Meta; using reflaxe.helpers.ArrayHelper; using reflaxe.helpers.BaseTypeHelper; +using reflaxe.helpers.ClassFieldHelper; using reflaxe.helpers.ModuleTypeHelper; using reflaxe.helpers.NameMetaHelper; using reflaxe.helpers.NullableMetaAccessHelper; @@ -496,14 +497,24 @@ func _exit_tree(): final code = switch(e.expr) { case TField(_, fa): { switch(fa) { - case FEnum(_, ef): { + // enum field access + case FEnum(_, _): { final enumCall = compileEnumFieldCall(e, el); if(enumCall != null) enumCall; else null; } + // @:constructor static function case FStatic(classTypeRef, _.get() => cf) if(cf.meta.maybeHas(":constructor")): { newToGDScript(classTypeRef, expr, el); } + // Replace pad nulls with default values + case FInstance(clsRef, _, cfRef) | FStatic(clsRef, cfRef): { + final funcData = cfRef.get().findFuncData(clsRef.get()); + if(funcData != null) { + el = funcData.replacePadNullsWithDefaults(el, ":default_value", generateInjectionExpression); + } + null; + } case _: null; } }