summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Fusik <piotr@fusion-lang.org>2024-01-24 12:18:24 +0100
committerPiotr Fusik <piotr@fusion-lang.org>2024-01-24 12:18:24 +0100
commiteb47ff1fe40032f54da5b4d86da000fc384a35af (patch)
tree816a990f2dd986ab28f936264ee6fad2cf16c144
parent05b1dec7f952c4097b2dd9d479e0e843b8ac5aa1 (diff)
[c] Avoid a space between "*" and "futemp".
-rw-r--r--GenC.fu6
-rw-r--r--libfut.cpp5
-rw-r--r--libfut.cs5
-rw-r--r--libfut.hpp1
-rw-r--r--libfut.js5
5 files changed, 22 insertions, 0 deletions
diff --git a/GenC.fu b/GenC.fu
index 38ff303..e744776 100644
--- a/GenC.fu
+++ b/GenC.fu
@@ -134,6 +134,12 @@ public class GenC : GenCCpp
&& dict.GetValueType() is FuStorageType;
}
+ protected override void StartTemporaryVar!(FuType type)
+ {
+ // overridden just to avoid the unnecessary space
+ StartDefinition(type, true, true);
+ }
+
void WriteTemporaryName!(int id)
{
Write("futemp");
diff --git a/libfut.cpp b/libfut.cpp
index 6e45bf5..688d8dd 100644
--- a/libfut.cpp
+++ b/libfut.cpp
@@ -9079,6 +9079,11 @@ bool GenC::isDictionaryClassStgIndexing(const FuExpr * expr)
return (indexing = dynamic_cast<const FuBinaryExpr *>(expr)) && indexing->op == FuToken::leftBracket && (dict = dynamic_cast<const FuClassType *>(indexing->left->type.get())) && dict->class_->typeParameterCount == 2 && dynamic_cast<const FuStorageType *>(dict->getValueType().get());
}
+void GenC::startTemporaryVar(const FuType * type)
+{
+ startDefinition(type, true, true);
+}
+
void GenC::writeTemporaryName(int id)
{
write("futemp");
diff --git a/libfut.cs b/libfut.cs
index c2a17e2..32e3174 100644
--- a/libfut.cs
+++ b/libfut.cs
@@ -9316,6 +9316,11 @@ namespace Fusion
return expr is FuBinaryExpr indexing && indexing.Op == FuToken.LeftBracket && indexing.Left.Type is FuClassType dict && dict.Class.TypeParameterCount == 2 && dict.GetValueType() is FuStorageType;
}
+ protected override void StartTemporaryVar(FuType type)
+ {
+ StartDefinition(type, true, true);
+ }
+
void WriteTemporaryName(int id)
{
Write("futemp");
diff --git a/libfut.hpp b/libfut.hpp
index f146bed..7e2ba7a 100644
--- a/libfut.hpp
+++ b/libfut.hpp
@@ -2033,6 +2033,7 @@ protected:
virtual void writePrintfLongPrefix();
void writePrintfWidth(const FuInterpolatedPart * part) override;
virtual void writeInterpolatedStringArgBase(const FuExpr * expr);
+ void startTemporaryVar(const FuType * type) override;
void writeInterpolatedStringArg(const FuExpr * expr) override;
virtual void writeCamelCaseNotKeyword(std::string_view name);
void writeName(const FuSymbol * symbol) override;
diff --git a/libfut.js b/libfut.js
index 361e64e..33b5bac 100644
--- a/libfut.js
+++ b/libfut.js
@@ -9653,6 +9653,11 @@ export class GenC extends GenCCpp
return (indexing = expr) instanceof FuBinaryExpr && indexing.op == FuToken.LEFT_BRACKET && (dict = indexing.left.type) instanceof FuClassType && dict.class.typeParameterCount == 2 && dict.getValueType() instanceof FuStorageType;
}
+ startTemporaryVar(type)
+ {
+ this.#startDefinition(type, true, true);
+ }
+
#writeTemporaryName(id)
{
this.write("futemp");