weitere Fehler behoben

This commit is contained in:
JanUlrich 2014-02-19 17:32:43 +01:00
parent bf341ab4f3
commit e33b9fd76e
9 changed files with 128 additions and 125 deletions

View File

@ -1035,45 +1035,45 @@ boundedMethodParameters : boundedMethodParameter
// returns Method // returns Method
methodheader :'<' boundedMethodParameters '>' type methoddeclarator methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
$5.setReturnType($4); $5.setType($4);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
} }
| type methoddeclarator | type methoddeclarator
{ {
$2.setReturnType($1); $2.setType($1);
$$=$2; $$=$2;
} }
| modifiers type methoddeclarator | modifiers type methoddeclarator
{ {
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType($2); $3.setType($2);
$$=$3; $$=$3;
} }
| modifiers '<' boundedMethodParameters '>' type methoddeclarator | modifiers '<' boundedMethodParameters '>' type methoddeclarator
{ {
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$6.setReturnType($5); $6.setType($5);
$$=$6; $$=$6;
} }
| type methoddeclarator throws | type methoddeclarator throws
{ {
$2.setReturnType($1); $2.setType($1);
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }
| '<' boundedMethodParameters '>' type methoddeclarator throws | '<' boundedMethodParameters '>' type methoddeclarator throws
{ {
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$5.setReturnType($4); $5.setType($4);
$5.set_ExceptionList($6); $5.set_ExceptionList($6);
$$=$5; $$=$5;
} }
| modifiers type methoddeclarator throws | modifiers type methoddeclarator throws
{ {
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType($2); $3.setType($2);
$3.set_ExceptionList($4); $3.set_ExceptionList($4);
$$=$3; $$=$3;
} }
@ -1081,27 +1081,27 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$6.setReturnType($5); $6.setType($5);
$6.set_ExceptionList($7); $6.set_ExceptionList($7);
$$=$6; $$=$6;
} }
| VOID methoddeclarator | VOID methoddeclarator
{ {
Void Voit = new Void($1.getOffset()); Void Voit = new Void($1.getOffset());
$2.setReturnType(Voit); $2.setType(Voit);
$$=$2; $$=$2;
} }
| modifiers VOID methoddeclarator | modifiers VOID methoddeclarator
{ {
Void voit = new Void($2.getOffset()); Void voit = new Void($2.getOffset());
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType(voit); $3.setType(voit);
$$=$3; $$=$3;
} }
| VOID methoddeclarator throws | VOID methoddeclarator throws
{ {
Void voyt = new Void($1.getOffset()); Void voyt = new Void($1.getOffset());
$2.setReturnType(voyt); $2.setType(voyt);
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }
@ -1109,14 +1109,14 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voyd = new Void($2.getOffset()); Void voyd = new Void($2.getOffset());
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType(voyd); $3.setType(voyd);
$3.set_ExceptionList($4); $3.set_ExceptionList($4);
$$=$3; $$=$3;
} }
| '<' boundedMethodParameters '>' VOID methoddeclarator | '<' boundedMethodParameters '>' VOID methoddeclarator
{ {
Void Voit = new Void($4.getOffset()); Void Voit = new Void($4.getOffset());
$5.setReturnType(Voit); $5.setType(Voit);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
} }
@ -1124,14 +1124,14 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voit = new Void($5.getOffset()); Void voit = new Void($5.getOffset());
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setReturnType(voit); $6.setType(voit);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$$=$6; $$=$6;
} }
| '<' boundedMethodParameters '>' VOID methoddeclarator throws | '<' boundedMethodParameters '>' VOID methoddeclarator throws
{ {
Void voyt = new Void($4.getOffset()); Void voyt = new Void($4.getOffset());
$5.setReturnType(voyt); $5.setType(voyt);
$5.set_ExceptionList($6); $5.set_ExceptionList($6);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
@ -1140,7 +1140,7 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voyd = new Void($5.getOffset()); Void voyd = new Void($5.getOffset());
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setReturnType(voyd); $6.setType(voyd);
$6.set_ExceptionList($7); $6.set_ExceptionList($7);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$$=$6; $$=$6;
@ -1148,12 +1148,12 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
| methoddeclarator | methoddeclarator
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());
$$=$1; $$=$1;
} }
| '<' boundedMethodParameters '>' methoddeclarator | '<' boundedMethodParameters '>' methoddeclarator
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $4.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $4.setType(TypePlaceholder.fresh());
$4.setGenericMethodParameters($2); $4.setGenericMethodParameters($2);
$$=$4; $$=$4;
} }
@ -1161,19 +1161,19 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
| modifiers methoddeclarator | modifiers methoddeclarator
{ {
$2.set_Modifiers($1); $2.set_Modifiers($1);
//auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());
$$=$2; $$=$2;
} }
| methoddeclarator throws | methoddeclarator throws
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());
$1.set_ExceptionList($2); $1.set_ExceptionList($2);
$$=$1; $$=$1;
} }
| modifiers methoddeclarator throws | modifiers methoddeclarator throws
{ {
$2.set_Modifiers($1); $2.set_Modifiers($1);
//auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }

View File

@ -247,14 +247,8 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface
*/ */
public void addField(Field i) public void addField(Field i)
{ {
Field tempField = i;
if(i instanceof Method){ fielddecl.addElement(i);
Method method = (Method)i;
if(method.get_Method_Name().equals(this.getName()) ){
tempField = new Constructor(method);
}
}
fielddecl.addElement(tempField);
} }
// ino.method.getUsedIdsToCheck.23050.definition // ino.method.getUsedIdsToCheck.23050.definition
@ -1267,6 +1261,23 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface
@Override @Override
public void parserPostProcessing(SyntaxTreeNode parent) { public void parserPostProcessing(SyntaxTreeNode parent) {
super.parserPostProcessing(parent); super.parserPostProcessing(parent);
//Alle Methoden auf Konstruktoren durchsuchen und diese umwandeln:
Vector<Field> tempFields = new Vector<Field>();
for(Field f : this.getFields()){
if(f instanceof Method && !(f instanceof Constructor)){
Method method = (Method)f;
if(method.get_Method_Name().equals(this.getName()) ){
tempFields.add(new Constructor(method));
}else{
tempFields.add(f);
}
}else{
tempFields.add(f);
}
}
this.fielddecl = tempFields;
//Prüfen ob ein Konstruktor vorhanden ist: //Prüfen ob ein Konstruktor vorhanden ist:
boolean constructorVorhanden = false; boolean constructorVorhanden = false;
for(Field f : this.getFields()){ for(Field f : this.getFields()){
@ -1276,8 +1287,6 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface
} }
} }
if(!constructorVorhanden){//Falls kein Konstruktor vorhanden ist, muss noch der Standardkonstruktor angefügt werden: if(!constructorVorhanden){//Falls kein Konstruktor vorhanden ist, muss noch der Standardkonstruktor angefügt werden:
Constructor standardKonstruktor = new Constructor(Method.createEmptyMethod(this.getName(), this)); Constructor standardKonstruktor = new Constructor(Method.createEmptyMethod(this.getName(), this));
this.addField(standardKonstruktor); this.addField(standardKonstruktor);
} }

View File

@ -15,6 +15,7 @@ import typinferenz.ConstraintsSet;
import typinferenz.JavaCodeResult; import typinferenz.JavaCodeResult;
import typinferenz.ResultSet; import typinferenz.ResultSet;
import typinferenz.SingleConstraint; import typinferenz.SingleConstraint;
import typinferenz.TypinferenzException;
import typinferenz.assumptions.TypeAssumptions; import typinferenz.assumptions.TypeAssumptions;
public class Constructor extends Method { public class Constructor extends Method {
@ -27,6 +28,7 @@ public class Constructor extends Method {
public Constructor(Method methode){ public Constructor(Method methode){
this.methode = methode; this.methode = methode;
this.setDeclIdVector(methode.getDeclIdVector()); this.setDeclIdVector(methode.getDeclIdVector());
this.methode.setType(new RefType(this.methode.getParentClass().getName(),0));
} }
@Override @Override
@ -51,7 +53,7 @@ public class Constructor extends Method {
@Override @Override
public String getTypeName() { public String getTypeName() {
return this.methode.getTypeName(); return this.getType().getName();
} }
@Override @Override
@ -60,11 +62,7 @@ public class Constructor extends Method {
return this.methode.get_Block(); return this.methode.get_Block();
} }
@Override
public void setReturnType(Type type) {
this.methode.setReturnType(type);
}
@Override @Override
public void set_Block(Block blo) { public void set_Block(Block blo) {
@ -120,12 +118,6 @@ public class Constructor extends Method {
this.methode.setOverloadedID(overloadedID); this.methode.setOverloadedID(overloadedID);
} }
@Override
public Type getReturnType() {
return this.methode.getReturnType();
}
@Override @Override
public String get_codegen_Param_Type(Vector paralist) { public String get_codegen_Param_Type(Vector paralist) {
@ -262,13 +254,13 @@ public class Constructor extends Method {
@Override @Override
public void setType(Type t) { public void setType(Type t) {
throw new TypinferenzException("Einem Konstruktor kann kein Typ zugewiesen werden");
this.methode.setType(t); //this.methode.setType(t);
} }
@Override @Override
public Type getType() { public Type getType() {
return new RefType(this.methode.getParentClass().getName(),0); return this.methode.getType();
} }

View File

@ -38,6 +38,7 @@ import typinferenz.ConstraintsSet;
import typinferenz.ResultSet; import typinferenz.ResultSet;
import typinferenz.TypeInsertable; import typinferenz.TypeInsertable;
import typinferenz.assumptions.MethodAssumption; import typinferenz.assumptions.MethodAssumption;
import typinferenz.assumptions.ParameterAssumption;
import typinferenz.assumptions.TypeAssumptions; import typinferenz.assumptions.TypeAssumptions;
@ -168,10 +169,10 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
// ino.end // ino.end
// ino.method.getTypeName.23533.body // ino.method.getTypeName.23533.body
{ {
if( this.getReturnType() == null ) if( this.getType() == null )
return null; return null;
else else
return this.getReturnType().getName(); return this.getType().getName();
} }
// ino.end // ino.end
@ -191,7 +192,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
*/ */
// ino.end // ino.end
// ino.method.setReturnType.23539.definition // ino.method.setReturnType.23539.definition
public void setReturnType(Type type) private void setReturnType(Type type)
// ino.end // ino.end
// ino.method.setReturnType.23539.body // ino.method.setReturnType.23539.body
{ {
@ -301,19 +302,6 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
} }
// ino.end // ino.end
/**
* Liefert den Return Type der Methode.
* Dieser entspricht dem Returntype des Methoden-Block's
* @returnb
*/
// ino.method.getReturnType.23569.definition
public Type getReturnType()
// ino.end
// ino.method.getReturnType.23569.body
{
return this.returntype; //auskommentiert von Andreas Stadelmeier (a10023)
}
// ino.end
@ -331,13 +319,13 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
{ {
ret += this.getParameterList().get_codegen_ParameterList(paralist); ret += this.getParameterList().get_codegen_ParameterList(paralist);
} }
if(this.getReturnType() == null) if(this.getType() == null)
{ {
ret += "V"; ret += "V";
} }
else else
{ {
ret += this.getReturnType().get_codegen_Type(paralist); ret += this.getType().get_codegen_Type(paralist);
} }
return ret; return ret;
} }
@ -372,7 +360,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
// ino.end // ino.end
// ino.method.codegen.23581.body // ino.method.codegen.23581.body
{ {
classfile.add_method(declid.firstElement().get_Name(), this.get_codegen_Param_Type(paralist), this.getParameterList(), this.getReturnType(), block, declid.firstElement().get_access_flags(), paralist, isAbstract); classfile.add_method(declid.firstElement().get_Name(), this.get_codegen_Param_Type(paralist), this.getParameterList(), this.getType(), block, declid.firstElement().get_access_flags(), paralist, isAbstract);
} }
// ino.end // ino.end
@ -472,7 +460,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
// ino.end // ino.end
// ino.method.toString.23605.body // ino.method.toString.23605.body
{ {
return this.getReturnType() + " " + block.toString(); return this.getType() + " " + block.toString();
} }
// ino.end // ino.end
@ -511,7 +499,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
// ino.method.wandleRefTypeAttributes2GenericAttributes.23614.body // ino.method.wandleRefTypeAttributes2GenericAttributes.23614.body
{ {
// Zuerst Returntype untersuchen // Zuerst Returntype untersuchen
Type returnType=getReturnType(); Type returnType=getType();
GenericTypeVar pendantReturnType=ClassHelper.findGenericType(returnType, paralist,genericMethodParameters); GenericTypeVar pendantReturnType=ClassHelper.findGenericType(returnType, paralist,genericMethodParameters);
if(pendantReturnType!=null){ //Wenn generisch, dann modifizieren if(pendantReturnType!=null){ //Wenn generisch, dann modifizieren
setReturnType(pendantReturnType); setReturnType(pendantReturnType);
@ -547,8 +535,13 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
public ConstraintsSet TYPE(TypeAssumptions ass) { public ConstraintsSet TYPE(TypeAssumptions ass) {
ConstraintsSet ret = new ConstraintsSet(); ConstraintsSet ret = new ConstraintsSet();
TypeAssumptions localAss = new TypeAssumptions();
ret.add(this.block.TYPEStmt(ass)); localAss.add(ass); //Die globalen Assumptions anhängen
//Die Parameter zu den Assumptions hinzufügen:
if(this.parameterlist!=null)for(FormalParameter param : this.parameterlist){
localAss.addParameterAssumption(new ParameterAssumption(param));
}
ret.add(this.block.TYPEStmt(localAss));
//eine Verknüpfung mit der Type Assumption aus dem Assumption Set und dem ermittelten Typ der Methode: //eine Verknüpfung mit der Type Assumption aus dem Assumption Set und dem ermittelten Typ der Methode:
ret.add(new SingleConstraint(this.block.getType(), this.returntype)); ret.add(new SingleConstraint(this.block.getType(), this.returntype));
return ret; return ret;
@ -560,13 +553,13 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
*/ */
public String getTypeInformation(){ public String getTypeInformation(){
if(this.parameterlist!=null)return "Methode "+this.get_Name()+ " Parameter: "+this.parameterlist.getTypeInformation()+", Block: "+this.block.getTypeInformation(); if(this.parameterlist!=null)return "Methode "+this.get_Name()+ " Parameter: "+this.parameterlist.getTypeInformation()+", Block: "+this.block.getTypeInformation();
return "Methode "+this.get_Name()+" : "+this.getReturnType()+", Block: "+this.block.getTypeInformation(); return "Methode "+this.get_Name()+" : "+this.getType()+", Block: "+this.block.getTypeInformation();
} }
@Override @Override
public JavaCodeResult printJavaCode(ResultSet resultSet) { public JavaCodeResult printJavaCode(ResultSet resultSet) {
JavaCodeResult ret = new JavaCodeResult(); JavaCodeResult ret = new JavaCodeResult();
ret.attach(this.getReturnType().printJavaCode(resultSet)).attach(" ").attach(this.get_Method_Name()).attach("()\n"); //TODO: hier müssen auch noch die Parameter ausgegeben werden! ret.attach(this.getType().printJavaCode(resultSet)).attach(" ").attach(this.get_Method_Name()).attach("()\n"); //TODO: hier müssen auch noch die Parameter ausgegeben werden!
ret.attach(this.block.printJavaCode(resultSet)); ret.attach(this.block.printJavaCode(resultSet));
return ret; return ret;
@ -581,7 +574,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
/* /*
TypeAssumptions assumptions = new TypeAssumptions(); TypeAssumptions assumptions = new TypeAssumptions();
this.assumedType = null; this.assumedType = null;
//if((this.get_Method_Name().equals(classmember.getName()) || this.get_Method_Name().equals("<init>")) && ((this.getReturnType().equals(new mycompiler.mytype.Void(0))) || this.getReturnType() instanceof TypePlaceholder)){ //if((this.get_Method_Name().equals(classmember.getName()) || this.get_Method_Name().equals("<init>")) && ((this.getType().equals(new mycompiler.mytype.Void(0))) || this.getType() instanceof TypePlaceholder)){
if((this.get_Method_Name().equals(classmember.getName()) || this.get_Method_Name().equals("<init>"))) { if((this.get_Method_Name().equals(classmember.getName()) || this.get_Method_Name().equals("<init>"))) {
this.set_Method_Name("<init>"); this.set_Method_Name("<init>");
this.assumedType = new RefType(classmember.getName(),0); this.assumedType = new RefType(classmember.getName(),0);
@ -609,7 +602,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
//methodList.addElement(method); //methodList.addElement(method);
//¿½r V_fields_methods: //¿½r V_fields_methods:
CMethodTypeAssumption methodAssum = new CMethodTypeAssumption(classmember.getType(), this.get_Method_Name(), this.getReturnType(), this.getParameterCount(),this.getLineNumber(),this.getOffset(),new Vector<Integer>(),this.getGenericMethodParameters()); // Typannahme bauen... CMethodTypeAssumption methodAssum = new CMethodTypeAssumption(classmember.getType(), this.get_Method_Name(), this.getType(), this.getParameterCount(),this.getLineNumber(),this.getOffset(),new Vector<Integer>(),this.getGenericMethodParameters()); // Typannahme bauen...
//Methode in V_Fields_methods ablegen //Methode in V_Fields_methods ablegen
@ -681,6 +674,9 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
this.returntype = t; this.returntype = t;
} }
/**
* Der Typ einer Methode ist ihr Returntype
*/
@Override @Override
public Type getType(){ public Type getType(){
//Methode und Block teilen sich einen ReturnType: //Methode und Block teilen sich einen ReturnType:
@ -695,8 +691,7 @@ public class Method extends Field implements ITypeReplacementListener, IItemWith
Block tempBlock = new Block(); Block tempBlock = new Block();
//tempBlock.setType(new RefType(parent.getName(),0)); //tempBlock.setType(new RefType(parent.getName(),0));
ret.set_Block(tempBlock); ret.set_Block(tempBlock);
ret.setType(TypePlaceholder.fresh(ret)); ret.parserPostProcessing(parent);
ret.parent = parent;
return ret; return ret;
} }

View File

@ -16,7 +16,7 @@ import java.util.Iterator;
// ino.class.ParameterList.23620.declaration // ino.class.ParameterList.23620.declaration
public class ParameterList public class ParameterList implements Iterable<FormalParameter>
// ino.end // ino.end
// ino.class.ParameterList.23620.body // ino.class.ParameterList.23620.body
{ {
@ -146,5 +146,12 @@ public class ParameterList
return ret; return ret;
} }
@Override
public Iterator<FormalParameter> iterator() {
return this.formalparameter.iterator();
}
} }
// ino.end // ino.end

View File

@ -1563,7 +1563,7 @@ case 102:
case 103: case 103:
// line 1037 "./../src/mycompiler/myparser/JavaParser.jay" // line 1037 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[0+yyTop]).setReturnType(((Type)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop]));
((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
@ -1571,7 +1571,7 @@ case 103:
case 104: case 104:
// line 1043 "./../src/mycompiler/myparser/JavaParser.jay" // line 1043 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[0+yyTop]).setReturnType(((Type)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
@ -1579,7 +1579,7 @@ case 105:
// line 1048 "./../src/mycompiler/myparser/JavaParser.jay" // line 1048 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop]));
((Method)yyVals[0+yyTop]).setReturnType(((Type)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
@ -1588,14 +1588,14 @@ case 106:
{ {
((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop])); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop]));
((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop]));
((Method)yyVals[0+yyTop]).setReturnType(((Type)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
case 107: case 107:
// line 1061 "./../src/mycompiler/myparser/JavaParser.jay" // line 1061 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[-1+yyTop]).setReturnType(((Type)yyVals[-2+yyTop])); ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop]));
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1604,7 +1604,7 @@ case 108:
// line 1067 "./../src/mycompiler/myparser/JavaParser.jay" // line 1067 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop])); ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop]));
((Method)yyVals[-1+yyTop]).setReturnType(((Type)yyVals[-2+yyTop])); ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop]));
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1613,7 +1613,7 @@ case 109:
// line 1074 "./../src/mycompiler/myparser/JavaParser.jay" // line 1074 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop]));
((Method)yyVals[-1+yyTop]).setReturnType(((Type)yyVals[-2+yyTop])); ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop]));
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1623,7 +1623,7 @@ case 110:
{ {
((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop])); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop]));
((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop])); ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop]));
((Method)yyVals[-1+yyTop]).setReturnType(((Type)yyVals[-2+yyTop])); ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop]));
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1632,7 +1632,7 @@ case 111:
// line 1089 "./../src/mycompiler/myparser/JavaParser.jay" // line 1089 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset());
((Method)yyVals[0+yyTop]).setReturnType(Voit); ((Method)yyVals[0+yyTop]).setType(Voit);
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
@ -1641,7 +1641,7 @@ case 112:
{ {
Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset());
((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop]));
((Method)yyVals[0+yyTop]).setReturnType(voit); ((Method)yyVals[0+yyTop]).setType(voit);
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
@ -1649,7 +1649,7 @@ case 113:
// line 1102 "./../src/mycompiler/myparser/JavaParser.jay" // line 1102 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset());
((Method)yyVals[-1+yyTop]).setReturnType(voyt); ((Method)yyVals[-1+yyTop]).setType(voyt);
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1659,7 +1659,7 @@ case 114:
{ {
Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset());
((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop]));
((Method)yyVals[-1+yyTop]).setReturnType(voyd); ((Method)yyVals[-1+yyTop]).setType(voyd);
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1668,7 +1668,7 @@ case 115:
// line 1117 "./../src/mycompiler/myparser/JavaParser.jay" // line 1117 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset());
((Method)yyVals[0+yyTop]).setReturnType(Voit); ((Method)yyVals[0+yyTop]).setType(Voit);
((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
@ -1678,7 +1678,7 @@ case 116:
{ {
Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset());
((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop])); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop]));
((Method)yyVals[0+yyTop]).setReturnType(voit); ((Method)yyVals[0+yyTop]).setType(voit);
((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
@ -1687,7 +1687,7 @@ case 117:
// line 1132 "./../src/mycompiler/myparser/JavaParser.jay" // line 1132 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset());
((Method)yyVals[-1+yyTop]).setReturnType(voyt); ((Method)yyVals[-1+yyTop]).setType(voyt);
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop])); ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
@ -1698,7 +1698,7 @@ case 118:
{ {
Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset());
((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop])); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop]));
((Method)yyVals[-1+yyTop]).setReturnType(voyd); ((Method)yyVals[-1+yyTop]).setType(voyd);
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop])); ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
@ -1707,14 +1707,14 @@ case 118:
case 119: case 119:
// line 1150 "./../src/mycompiler/myparser/JavaParser.jay" // line 1150 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
/*auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh()); */ /*auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh()); */
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
case 120: case 120:
// line 1155 "./../src/mycompiler/myparser/JavaParser.jay" // line 1155 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
/*auskommentiert von Andreas Stadelmeier (a10023) $4.setReturnType(TypePlaceholder.fresh());*/ /*auskommentiert von Andreas Stadelmeier (a10023) $4.setType(TypePlaceholder.fresh());*/
((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-2+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-2+yyTop]));
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
@ -1723,14 +1723,14 @@ case 121:
// line 1162 "./../src/mycompiler/myparser/JavaParser.jay" // line 1162 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-1+yyTop]));
/*auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh());*/ /*auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());*/
yyVal=((Method)yyVals[0+yyTop]); yyVal=((Method)yyVals[0+yyTop]);
} }
break; break;
case 122: case 122:
// line 1168 "./../src/mycompiler/myparser/JavaParser.jay" // line 1168 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
/*auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh());*/ /*auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());*/
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }
@ -1739,7 +1739,7 @@ case 123:
// line 1174 "./../src/mycompiler/myparser/JavaParser.jay" // line 1174 "./../src/mycompiler/myparser/JavaParser.jay"
{ {
((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop]));
/*auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh());*/ /*auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());*/
((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop]));
yyVal=((Method)yyVals[-1+yyTop]); yyVal=((Method)yyVals[-1+yyTop]);
} }

View File

@ -1035,45 +1035,45 @@ boundedMethodParameters : boundedMethodParameter
// returns Method // returns Method
methodheader :'<' boundedMethodParameters '>' type methoddeclarator methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
$5.setReturnType($4); $5.setType($4);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
} }
| type methoddeclarator | type methoddeclarator
{ {
$2.setReturnType($1); $2.setType($1);
$$=$2; $$=$2;
} }
| modifiers type methoddeclarator | modifiers type methoddeclarator
{ {
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType($2); $3.setType($2);
$$=$3; $$=$3;
} }
| modifiers '<' boundedMethodParameters '>' type methoddeclarator | modifiers '<' boundedMethodParameters '>' type methoddeclarator
{ {
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$6.setReturnType($5); $6.setType($5);
$$=$6; $$=$6;
} }
| type methoddeclarator throws | type methoddeclarator throws
{ {
$2.setReturnType($1); $2.setType($1);
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }
| '<' boundedMethodParameters '>' type methoddeclarator throws | '<' boundedMethodParameters '>' type methoddeclarator throws
{ {
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$5.setReturnType($4); $5.setType($4);
$5.set_ExceptionList($6); $5.set_ExceptionList($6);
$$=$5; $$=$5;
} }
| modifiers type methoddeclarator throws | modifiers type methoddeclarator throws
{ {
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType($2); $3.setType($2);
$3.set_ExceptionList($4); $3.set_ExceptionList($4);
$$=$3; $$=$3;
} }
@ -1081,27 +1081,27 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$6.setReturnType($5); $6.setType($5);
$6.set_ExceptionList($7); $6.set_ExceptionList($7);
$$=$6; $$=$6;
} }
| VOID methoddeclarator | VOID methoddeclarator
{ {
Void Voit = new Void($1.getOffset()); Void Voit = new Void($1.getOffset());
$2.setReturnType(Voit); $2.setType(Voit);
$$=$2; $$=$2;
} }
| modifiers VOID methoddeclarator | modifiers VOID methoddeclarator
{ {
Void voit = new Void($2.getOffset()); Void voit = new Void($2.getOffset());
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType(voit); $3.setType(voit);
$$=$3; $$=$3;
} }
| VOID methoddeclarator throws | VOID methoddeclarator throws
{ {
Void voyt = new Void($1.getOffset()); Void voyt = new Void($1.getOffset());
$2.setReturnType(voyt); $2.setType(voyt);
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }
@ -1109,14 +1109,14 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voyd = new Void($2.getOffset()); Void voyd = new Void($2.getOffset());
$3.set_Modifiers($1); $3.set_Modifiers($1);
$3.setReturnType(voyd); $3.setType(voyd);
$3.set_ExceptionList($4); $3.set_ExceptionList($4);
$$=$3; $$=$3;
} }
| '<' boundedMethodParameters '>' VOID methoddeclarator | '<' boundedMethodParameters '>' VOID methoddeclarator
{ {
Void Voit = new Void($4.getOffset()); Void Voit = new Void($4.getOffset());
$5.setReturnType(Voit); $5.setType(Voit);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
} }
@ -1124,14 +1124,14 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voit = new Void($5.getOffset()); Void voit = new Void($5.getOffset());
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setReturnType(voit); $6.setType(voit);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$$=$6; $$=$6;
} }
| '<' boundedMethodParameters '>' VOID methoddeclarator throws | '<' boundedMethodParameters '>' VOID methoddeclarator throws
{ {
Void voyt = new Void($4.getOffset()); Void voyt = new Void($4.getOffset());
$5.setReturnType(voyt); $5.setType(voyt);
$5.set_ExceptionList($6); $5.set_ExceptionList($6);
$5.setGenericMethodParameters($2); $5.setGenericMethodParameters($2);
$$=$5; $$=$5;
@ -1140,7 +1140,7 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
{ {
Void voyd = new Void($5.getOffset()); Void voyd = new Void($5.getOffset());
$6.set_Modifiers($1); $6.set_Modifiers($1);
$6.setReturnType(voyd); $6.setType(voyd);
$6.set_ExceptionList($7); $6.set_ExceptionList($7);
$6.setGenericMethodParameters($3); $6.setGenericMethodParameters($3);
$$=$6; $$=$6;
@ -1148,12 +1148,12 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
| methoddeclarator | methoddeclarator
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());
$$=$1; $$=$1;
} }
| '<' boundedMethodParameters '>' methoddeclarator | '<' boundedMethodParameters '>' methoddeclarator
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $4.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $4.setType(TypePlaceholder.fresh());
$4.setGenericMethodParameters($2); $4.setGenericMethodParameters($2);
$$=$4; $$=$4;
} }
@ -1161,19 +1161,19 @@ methodheader :'<' boundedMethodParameters '>' type methoddeclarator
| modifiers methoddeclarator | modifiers methoddeclarator
{ {
$2.set_Modifiers($1); $2.set_Modifiers($1);
//auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());
$$=$2; $$=$2;
} }
| methoddeclarator throws | methoddeclarator throws
{ {
//auskommentiert von Andreas Stadelmeier (a10023) $1.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());
$1.set_ExceptionList($2); $1.set_ExceptionList($2);
$$=$1; $$=$1;
} }
| modifiers methoddeclarator throws | modifiers methoddeclarator throws
{ {
$2.set_Modifiers($1); $2.set_Modifiers($1);
//auskommentiert von Andreas Stadelmeier (a10023) $2.setReturnType(TypePlaceholder.fresh()); //auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());
$2.set_ExceptionList($3); $2.set_ExceptionList($3);
$$=$2; $$=$2;
} }

View File

@ -1,7 +1,7 @@
class WhileTest{ class WhileTest{
public method(){
var; var;
public method(){
while(true){ while(true){
var = "String"; var = "String";
} }

View File

@ -1,11 +1,11 @@
Class DEBUG [Typeinference] Erstellte Assumptions: this: LambdaTest1Method Assumptions: Class DEBUG [Typeinference] Erstellte Assumptions: this: WhileTestMethod Assumptions:
[typinferenz.assumptions.MethodAssumption@1e54f9f6, typinferenz.assumptions.MethodAssumption@5ce69508] [typinferenz.assumptions.MethodAssumption@52f37721, typinferenz.assumptions.MethodAssumption@6e124212]
FieldVar Assumptions: FieldVar Assumptions:
[typinferenz.assumptions.FieldAssumption@26426fde] [typinferenz.assumptions.FieldAssumption@70afe432]
LocalVar Assumptions: LocalVar Assumptions:
[] []
Parameter Assumptions: Parameter Assumptions:
[] []
Block DEBUG [Typeinference] Prozessing statement: null Return null (( [ String text, ]) -> null { [null Return toAppend]) Block DEBUG [Typeinference] Prozessing statement: WHILE null { [(var = mycompiler.mystatement.StringLiteral@2a2d0d78)]
Block DEBUG [Typeinference] Prozessing statement: null Return toAppend Block DEBUG [Typeinference] Prozessing statement: (var = mycompiler.mystatement.StringLiteral@2a2d0d78)