summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Fusik <piotr@fusion-lang.org>2024-02-05 06:33:39 +0100
committerPiotr Fusik <piotr@fusion-lang.org>2024-02-05 06:33:39 +0100
commit65eb83dd509d03d00ae96d334c9b49436499221a (patch)
treefba892fb493564d5e2b04c7f5a8c74064dfd01c7
parent36289971f966f3e8dd1d428046c45074a7ba332c (diff)
[fut] Fix Java fut.
-rw-r--r--GenC.fu3
-rw-r--r--libfut.cpp4
-rw-r--r--libfut.cs3
-rw-r--r--libfut.js4
4 files changed, 12 insertions, 2 deletions
diff --git a/GenC.fu b/GenC.fu
index 238bac6..6a17a1a 100644
--- a/GenC.fu
+++ b/GenC.fu
@@ -860,6 +860,9 @@ public class GenC : GenCCpp
void WriteDictionaryDestroy!(FuType? type)
{
switch (type) {
+ case null: // for Java fut
+ Write("NULL");
+ break;
case FuStringStorageType:
case FuArrayStorageType:
Write("free");
diff --git a/libfut.cpp b/libfut.cpp
index 0463dc4..116dc52 100644
--- a/libfut.cpp
+++ b/libfut.cpp
@@ -9747,7 +9747,9 @@ bool GenC::hasDictionaryDestroy(const FuType * type)
void GenC::writeDictionaryDestroy(const FuType * type)
{
- if (dynamic_cast<const FuStringStorageType *>(type) || dynamic_cast<const FuArrayStorageType *>(type))
+ if (type == nullptr)
+ write("NULL");
+ else if (dynamic_cast<const FuStringStorageType *>(type) || dynamic_cast<const FuArrayStorageType *>(type))
write("free");
else if (const FuOwningType *owning = dynamic_cast<const FuOwningType *>(type))
do {
diff --git a/libfut.cs b/libfut.cs
index bfe86c6..2f0aea7 100644
--- a/libfut.cs
+++ b/libfut.cs
@@ -10041,6 +10041,9 @@ namespace Fusion
void WriteDictionaryDestroy(FuType type)
{
switch (type) {
+ case null:
+ Write("NULL");
+ break;
case FuStringStorageType:
case FuArrayStorageType:
Write("free");
diff --git a/libfut.js b/libfut.js
index 6d9dc2d..7faf156 100644
--- a/libfut.js
+++ b/libfut.js
@@ -10393,7 +10393,9 @@ export class GenC extends GenCCpp
#writeDictionaryDestroy(type)
{
fuswitch0: {
- if (type instanceof FuStringStorageType || type instanceof FuArrayStorageType)
+ if (type == null)
+ this.write("NULL");
+ else if (type instanceof FuStringStorageType || type instanceof FuArrayStorageType)
this.write("free");
else if (type instanceof FuOwningType) {
const owning = type;