summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Fusik <piotr@fusion-lang.org>2024-02-28 20:47:43 +0100
committerPiotr Fusik <piotr@fusion-lang.org>2024-02-28 20:47:43 +0100
commit66d88e452d6f99f74c88eb381b7488540257f6d6 (patch)
tree2c91d9b47d37b0cbd372b5744ae828772180ce8a
parentf9cbcd86f92e383796ad37543996dc87c1f788cc (diff)
[java] StringWriter.WriteCodePoint.
#140
-rw-r--r--GenJava.fu4
-rw-r--r--libfut.cpp4
-rw-r--r--libfut.cs4
-rw-r--r--libfut.js4
-rw-r--r--test/JsonElement.fu4
5 files changed, 18 insertions, 2 deletions
diff --git a/GenJava.fu b/GenJava.fu
index 9b4813b..2d35c6f 100644
--- a/GenJava.fu
+++ b/GenJava.fu
@@ -802,6 +802,10 @@ public class GenJava : GenTyped
WriteCall("System.err.print(Character.toChars", args[0]);
WriteChar(')');
}
+ else if (obj.Type.AsClassType().Class.Id == FuId.StringWriterClass) {
+ WriteMethodCall(obj, "append(Character.toString", args[0]);
+ WriteChar(')');
+ }
else {
Write("try { ");
WriteMethodCall(obj, "append(Character.toString", args[0]);
diff --git a/libfut.cpp b/libfut.cpp
index cfefe31..41b24d3 100644
--- a/libfut.cpp
+++ b/libfut.cpp
@@ -18135,6 +18135,10 @@ void GenJava::writeCallExpr(const FuExpr * obj, const FuMethod * method, const s
writeCall("System.err.print(Character.toChars", (*args)[0].get());
writeChar(')');
}
+ else if (obj->type->asClassType()->class_->id == FuId::stringWriterClass) {
+ writeMethodCall(obj, "append(Character.toString", (*args)[0].get());
+ writeChar(')');
+ }
else {
write("try { ");
writeMethodCall(obj, "append(Character.toString", (*args)[0].get());
diff --git a/libfut.cs b/libfut.cs
index 060b1d6..aceb108 100644
--- a/libfut.cs
+++ b/libfut.cs
@@ -18786,6 +18786,10 @@ namespace Fusion
WriteCall("System.err.print(Character.toChars", args[0]);
WriteChar(')');
}
+ else if (obj.Type.AsClassType().Class.Id == FuId.StringWriterClass) {
+ WriteMethodCall(obj, "append(Character.toString", args[0]);
+ WriteChar(')');
+ }
else {
Write("try { ");
WriteMethodCall(obj, "append(Character.toString", args[0]);
diff --git a/libfut.js b/libfut.js
index 39ae82b..8362a87 100644
--- a/libfut.js
+++ b/libfut.js
@@ -19301,6 +19301,10 @@ export class GenJava extends GenTyped
this.writeCall("System.err.print(Character.toChars", args[0]);
this.writeChar(41);
}
+ else if (obj.type.asClassType().class.id == FuId.STRING_WRITER_CLASS) {
+ this.writeMethodCall(obj, "append(Character.toString", args[0]);
+ this.writeChar(41);
+ }
else {
this.write("try { ");
this.writeMethodCall(obj, "append(Character.toString", args[0]);
diff --git a/test/JsonElement.fu b/test/JsonElement.fu
index 41ea03c..dbc4205 100644
--- a/test/JsonElement.fu
+++ b/test/JsonElement.fu
@@ -1,4 +1,4 @@
-#if CPP
+#if CPP || JAVA
abstract class JsonElement
{
public virtual bool IsObject() => false;
@@ -352,7 +352,7 @@ public static class Test
{
public static bool Run()
{
- JsonElement# json; //FAIL: c java TODO; cl
+ JsonElement# json; //FAIL: c TODO; cl
json = JsonElement.Parse("\"foo\"");
if (!json.IsString() || json.GetString() != "foo")
return false;