|
@@ -110,6 +110,7 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
|
110
|
110
|
private static final JavaMethod HASHMAP_INIT = JavaMethod.getNativeConstructor(JavaClass.HASHMAP, "()V");
|
111
|
111
|
private static final JavaMethod MAP_GET = JavaMethod.getNativeVirtual(JavaClass.MAP, "get", "(Ljava/lang/Object;)Ljava/lang/Object;");
|
112
|
112
|
private static final JavaMethod MAP_PUT = JavaMethod.getNativeVirtual(JavaClass.MAP, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
|
|
113
|
+ private static final JavaMethod MAP_PUT_ALL = JavaMethod.getNativeVirtual(JavaClass.MAP, "putAll", "(Ljava/util/Map;)V");
|
113
|
114
|
private static final JavaMethod MAP_CONTAINS_KEY = JavaMethod.getNativeVirtual(JavaClass.MAP, "containsKey", "(Ljava/lang/Object;)Z");
|
114
|
115
|
private static final JavaMethod MAP_SIZE = JavaMethod.getNativeVirtual(JavaClass.MAP, "size", "()I");
|
115
|
116
|
private static final JavaMethod MAP_ISEMPTY = JavaMethod.getNativeVirtual(JavaClass.MAP, "isEmpty", "()Z");
|
|
@@ -542,7 +543,7 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
|
542
|
543
|
argument.accept(this);
|
543
|
544
|
}
|
544
|
545
|
}
|
545
|
|
-
|
|
546
|
+
|
546
|
547
|
switch (builtin) {
|
547
|
548
|
case BOOL_NOT:
|
548
|
549
|
javaWriter.iConst1();
|
|
@@ -907,6 +908,13 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
|
907
|
908
|
break;
|
908
|
909
|
}
|
909
|
910
|
case GENERICMAP_PUT: {
|
|
911
|
+ //FIXME dirty check for typeOfT
|
|
912
|
+ if (expression.arguments.arguments.length == 1) {
|
|
913
|
+ javaWriter.dup();
|
|
914
|
+ javaWriter.invokeVirtual(JavaMethod.getVirtual(JavaClass.OBJECT, "getClass", "()Ljava/lang/Class;", 0));
|
|
915
|
+ javaWriter.swap();
|
|
916
|
+ }
|
|
917
|
+
|
910
|
918
|
javaWriter.invokeVirtual(MAP_PUT);
|
911
|
919
|
javaWriter.pop();
|
912
|
920
|
break;
|
|
@@ -918,6 +926,9 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
|
918
|
926
|
throw new UnsupportedOperationException("Not yet supported!");
|
919
|
927
|
case GENERICMAP_NOTEQUALS:
|
920
|
928
|
throw new UnsupportedOperationException("Not yet supported!");
|
|
929
|
+ case GENERICMAP_ADDALL:
|
|
930
|
+ javaWriter.invokeInterface(MAP_PUT_ALL);
|
|
931
|
+ break;
|
921
|
932
|
case ARRAY_INDEXGET: {
|
922
|
933
|
ArrayTypeID type = (ArrayTypeID) expression.target.type.type;
|
923
|
934
|
expression.target.accept(this);
|