forked from JavaTX/JavaCompilerCore
GenCode: Assign kann nun zwischen Int und String switchen.
StringLit-Test ergab, dass es - wie befürchtet - Probleme mit der korrekten Vergabe von Indizes gibt.
This commit is contained in:
parent
5fbb4f0d61
commit
d50206a519
@ -182,14 +182,16 @@ public class Assign extends Expr
|
|||||||
counterAssign++;
|
counterAssign++;
|
||||||
//il.append(new ISTORE(counterAssign)); //macht ISTORE für meherere Variable nutzbar (nicht nur ISTORE_1, ISTORE_2, etc.)
|
//il.append(new ISTORE(counterAssign)); //macht ISTORE für meherere Variable nutzbar (nicht nur ISTORE_1, ISTORE_2, etc.)
|
||||||
//Anpassung für Variablen außerhalb von int = ISTORE nötig?
|
//Anpassung für Variablen außerhalb von int = ISTORE nötig?
|
||||||
switch(expr2.getType().toString()){//welche rückgabewerte entstehen hier??? Integer und String scheinen nicht zu stimmen
|
|
||||||
case "Integer": il.append(new ISTORE(counterAssign));
|
String expr2Type = expr2.getType().get_Name().toString();
|
||||||
|
switch(expr2Type){//welche rückgabewerte entstehen hier??? Integer und String scheinen nicht zu stimmen
|
||||||
|
case "java.lang.Integer": il.append(new ISTORE(counterAssign));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "String": il.append(new ASTORE(counterAssign));
|
case "java.lang.String": il.append(new ASTORE(counterAssign));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//System.out.println(expr2.getType().toString());
|
|
||||||
return il;
|
return il;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
class StringLitTest{
|
class StringLitTest{
|
||||||
|
|
||||||
|
|
||||||
void method() { s; s = ""; }
|
void method() { s; s = "abcdefg"; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user