diff options
author | Piotr Fusik <piotr@fusion-lang.org> | 2024-02-28 20:47:43 +0100 |
---|---|---|
committer | Piotr Fusik <piotr@fusion-lang.org> | 2024-02-28 20:47:43 +0100 |
commit | 66d88e452d6f99f74c88eb381b7488540257f6d6 (patch) | |
tree | 2c91d9b47d37b0cbd372b5744ae828772180ce8a | |
parent | f9cbcd86f92e383796ad37543996dc87c1f788cc (diff) |
[java] StringWriter.WriteCodePoint.
#140
-rw-r--r-- | GenJava.fu | 4 | ||||
-rw-r--r-- | libfut.cpp | 4 | ||||
-rw-r--r-- | libfut.cs | 4 | ||||
-rw-r--r-- | libfut.js | 4 | ||||
-rw-r--r-- | test/JsonElement.fu | 4 |
5 files changed, 18 insertions, 2 deletions
@@ -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]); @@ -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()); @@ -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]); @@ -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; |