From 7f8973a4aa4ca9c69f400166a1b0afd118dbee49 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Sun, 15 Jan 2023 12:40:42 +0200 Subject: [PATCH] DGen - VariableParameter's now have their `Type` object extracted and type transformed as part of function definitions. Tests cases - Updated `simple_cast.t` to test new typeTransform() usage on VariableParameter (as stated above) --- source/tlang/compiler/codegen/emit/dgen.d | 6 +++++- source/tlang/testing/simple_cast.t | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/tlang/compiler/codegen/emit/dgen.d b/source/tlang/compiler/codegen/emit/dgen.d index 45f04247..4d835253 100644 --- a/source/tlang/compiler/codegen/emit/dgen.d +++ b/source/tlang/compiler/codegen/emit/dgen.d @@ -597,6 +597,7 @@ public final class DCodeEmitter : CodeEmitter { string signature; + // Extract the Function's return Type Type returnType = typeChecker.getType(func.context.container, func.getType()); // ( @@ -612,13 +613,16 @@ public final class DCodeEmitter : CodeEmitter { Variable currentParameter = parameters[parIdx]; + // Extract the variable's type + Type parameterType = typeChecker.getType(currentParameter.context.container, currentParameter.getType()); + // Generate the symbol-mapped names for the parameters Variable typedEntityVariable = cast(Variable)typeChecker.getResolver().resolveBest(func, currentParameter.getName()); //TODO: Remove `auto` string renamedSymbol = SymbolMapper.symbolLookup(typedEntityVariable); // Generate - parameterString~=currentParameter.getType()~" "~renamedSymbol; + parameterString~=typeTransform(parameterType)~" "~renamedSymbol; if(parIdx != (parameters.length-1)) { diff --git a/source/tlang/testing/simple_cast.t b/source/tlang/testing/simple_cast.t index f55705e4..3921adeb 100644 --- a/source/tlang/testing/simple_cast.t +++ b/source/tlang/testing/simple_cast.t @@ -2,7 +2,7 @@ module simple_cast; int myInt; -void function() +void function(int x) { byte bruh; byte myByte = (cast(byte)myInt)+bruh;