Parsen von typisierten Felddeklarationen ist jetzt möglich.
This commit is contained in:
parent
59106a7e7b
commit
2fb5413548
@ -867,7 +867,15 @@ Beispiel: var = 2;
|
|||||||
Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
||||||
Dieses Problem ist bei Feldern nicht der Fall.
|
Dieses Problem ist bei Feldern nicht der Fall.
|
||||||
*/
|
*/
|
||||||
fielddeclarator : variabledeclarator '=' expression
|
fielddeclarator : type variabledeclarator '=' expression
|
||||||
|
{
|
||||||
|
FieldDeclaration ret = new FieldDeclaration($2.getOffset());
|
||||||
|
ret.setType($1);
|
||||||
|
ret.set_DeclId($2);
|
||||||
|
ret.setWert($4);
|
||||||
|
$$=ret;
|
||||||
|
}
|
||||||
|
| variabledeclarator '=' expression
|
||||||
{
|
{
|
||||||
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
||||||
ret.set_DeclId($1);
|
ret.set_DeclId($1);
|
||||||
@ -1361,9 +1369,9 @@ blockstatement :localvariabledeclarationstatement
|
|||||||
|
|
||||||
formalparameter : type variabledeclaratorid
|
formalparameter : type variabledeclaratorid
|
||||||
{
|
{
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($2);
|
||||||
FP.setType($1);
|
FP.setType($1);
|
||||||
FP.set_DeclId($2);
|
//FP.set_DeclId($2);
|
||||||
$$=FP;
|
$$=FP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1375,9 +1383,9 @@ formalparameter : type variabledeclaratorid
|
|||||||
Parameterliste setzen
|
Parameterliste setzen
|
||||||
$5.set_Paratyp($3.get_ParaList());
|
$5.set_Paratyp($3.get_ParaList());
|
||||||
|
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($5);
|
||||||
FP.setType($1);
|
FP.setType($1);
|
||||||
FP.set_DeclId($5);
|
//FP.set_DeclId($5);
|
||||||
$$=FP;
|
$$=FP;
|
||||||
|
|
||||||
org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName());
|
org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName());
|
||||||
@ -1388,7 +1396,7 @@ formalparameter : type variabledeclaratorid
|
|||||||
{
|
{
|
||||||
org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name);
|
org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name);
|
||||||
|
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($1);
|
||||||
|
|
||||||
// #JB# 31.03.2005
|
// #JB# 31.03.2005
|
||||||
// ###########################################################
|
// ###########################################################
|
||||||
@ -1398,7 +1406,7 @@ formalparameter : type variabledeclaratorid
|
|||||||
//org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());
|
//org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());
|
||||||
|
|
||||||
//auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );
|
//auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );
|
||||||
FP.set_DeclId($1);
|
//FP.set_DeclId($1);
|
||||||
|
|
||||||
$$=FP;
|
$$=FP;
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,13 @@ import org.apache.log4j.Logger;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
|
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
|
||||||
import typinferenz.JavaCodeResult;
|
import typinferenz.JavaCodeResult;
|
||||||
import typinferenz.ResultSet;
|
import typinferenz.ResultSet;
|
||||||
import typinferenz.Typeable;
|
import typinferenz.Typeable;
|
||||||
import typinferenz.TypeInsertable;
|
import typinferenz.TypeInsertable;
|
||||||
|
import typinferenz.TypinferenzException;
|
||||||
|
|
||||||
// ino.class.FormalParameter.23391.declaration
|
// ino.class.FormalParameter.23391.declaration
|
||||||
public class FormalParameter extends SyntaxTreeNode implements ITypeReplacementListener, Typeable, TypeInsertable
|
public class FormalParameter extends SyntaxTreeNode implements ITypeReplacementListener, Typeable, TypeInsertable
|
||||||
@ -42,6 +44,9 @@ public class FormalParameter extends SyntaxTreeNode implements ITypeReplacementL
|
|||||||
protected static Logger inferencelog = Logger.getLogger("inference");
|
protected static Logger inferencelog = Logger.getLogger("inference");
|
||||||
// ino.end
|
// ino.end
|
||||||
|
|
||||||
|
public FormalParameter(DeclId name){
|
||||||
|
this.set_DeclId(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ino.method.setType.23404.defdescription type=javadoc
|
// ino.method.setType.23404.defdescription type=javadoc
|
||||||
@ -73,6 +78,7 @@ public class FormalParameter extends SyntaxTreeNode implements ITypeReplacementL
|
|||||||
// ino.end
|
// ino.end
|
||||||
// ino.method.set_DeclId.23407.body
|
// ino.method.set_DeclId.23407.body
|
||||||
{
|
{
|
||||||
|
if(did == null)throw new NullPointerException();
|
||||||
this.declid = did;
|
this.declid = did;
|
||||||
}
|
}
|
||||||
// ino.end
|
// ino.end
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -867,7 +867,15 @@ Beispiel: var = 2;
|
|||||||
Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll.
|
||||||
Dieses Problem ist bei Feldern nicht der Fall.
|
Dieses Problem ist bei Feldern nicht der Fall.
|
||||||
*/
|
*/
|
||||||
fielddeclarator : variabledeclarator '=' expression
|
fielddeclarator : type variabledeclarator '=' expression
|
||||||
|
{
|
||||||
|
FieldDeclaration ret = new FieldDeclaration($2.getOffset());
|
||||||
|
ret.setType($1);
|
||||||
|
ret.set_DeclId($2);
|
||||||
|
ret.setWert($4);
|
||||||
|
$$=ret;
|
||||||
|
}
|
||||||
|
| variabledeclarator '=' expression
|
||||||
{
|
{
|
||||||
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
FieldDeclaration ret = new FieldDeclaration($1.getOffset());
|
||||||
ret.set_DeclId($1);
|
ret.set_DeclId($1);
|
||||||
@ -1361,9 +1369,9 @@ blockstatement :localvariabledeclarationstatement
|
|||||||
|
|
||||||
formalparameter : type variabledeclaratorid
|
formalparameter : type variabledeclaratorid
|
||||||
{
|
{
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($2);
|
||||||
FP.setType($1);
|
FP.setType($1);
|
||||||
FP.set_DeclId($2);
|
//FP.set_DeclId($2);
|
||||||
$$=FP;
|
$$=FP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1375,9 +1383,9 @@ formalparameter : type variabledeclaratorid
|
|||||||
Parameterliste setzen
|
Parameterliste setzen
|
||||||
$5.set_Paratyp($3.get_ParaList());
|
$5.set_Paratyp($3.get_ParaList());
|
||||||
|
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($5);
|
||||||
FP.setType($1);
|
FP.setType($1);
|
||||||
FP.set_DeclId($5);
|
//FP.set_DeclId($5);
|
||||||
$$=FP;
|
$$=FP;
|
||||||
|
|
||||||
org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName());
|
org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName());
|
||||||
@ -1388,7 +1396,7 @@ formalparameter : type variabledeclaratorid
|
|||||||
{
|
{
|
||||||
org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name);
|
org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name);
|
||||||
|
|
||||||
FormalParameter FP = new FormalParameter();
|
FormalParameter FP = new FormalParameter($1);
|
||||||
|
|
||||||
// #JB# 31.03.2005
|
// #JB# 31.03.2005
|
||||||
// ###########################################################
|
// ###########################################################
|
||||||
@ -1398,7 +1406,7 @@ formalparameter : type variabledeclaratorid
|
|||||||
//org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());
|
//org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());
|
||||||
|
|
||||||
//auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );
|
//auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );
|
||||||
FP.set_DeclId($1);
|
//FP.set_DeclId($1);
|
||||||
|
|
||||||
$$=FP;
|
$$=FP;
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,10 @@ public class FunNMethod extends Method{
|
|||||||
ParameterList pl = new ParameterList();
|
ParameterList pl = new ParameterList();
|
||||||
Vector<FormalParameter> fpList = new Vector<FormalParameter>();
|
Vector<FormalParameter> fpList = new Vector<FormalParameter>();
|
||||||
for(int i = 0;i<N;i++){
|
for(int i = 0;i<N;i++){
|
||||||
FormalParameter parameter = new FormalParameter();
|
|
||||||
parameter.setType(TypePlaceholder.fresh(parameter));
|
|
||||||
DeclId paramName = new DeclId("T"+i);
|
DeclId paramName = new DeclId("T"+i);
|
||||||
parameter.set_DeclId(paramName);
|
FormalParameter parameter = new FormalParameter(paramName);
|
||||||
|
parameter.setType(TypePlaceholder.fresh(parameter));
|
||||||
|
//parameter.set_DeclId(paramName);
|
||||||
fpList.add(parameter);
|
fpList.add(parameter);
|
||||||
}
|
}
|
||||||
pl.formalparameter = fpList;
|
pl.formalparameter = fpList;
|
||||||
|
@ -1,165 +1,123 @@
|
|||||||
Class DEBUG [Typeinference] Erstellte Assumptions: this: Klasse2Method Assumptions:
|
Class DEBUG [Typeinference] Erstellte Assumptions: this: MatrixMethod Assumptions:
|
||||||
[MethodAssumption: TPH B null { [(var1 = NEW Klasse1), null Return null (var1.getVar1( [ ]))], MethodAssumption: Klasse2 null { []]
|
[MethodAssumption: Matrix null { []]
|
||||||
FieldVar Assumptions:
|
FieldVar Assumptions:
|
||||||
[typinferenz.assumptions.FieldAssumption@3ea4e3ae]
|
[typinferenz.assumptions.FieldAssumption@15502c5e]
|
||||||
LocalVar Assumptions:
|
LocalVar Assumptions:
|
||||||
[]
|
[]
|
||||||
Parameter Assumptions:
|
Parameter Assumptions:
|
||||||
[]
|
[]
|
||||||
|
|
||||||
Class DEBUG [Typeinference] Erstellte Assumptions: this: Klasse1Method Assumptions:
|
Block DEBUG [Typeinference] Prozessing statement: null Return null (( [ f, ]) -> null { [null Return null (f.apply( [ null (this(null)), m, ]))])
|
||||||
[MethodAssumption: int int { [null Return var1], MethodAssumption: Klasse1 null { []]
|
Block DEBUG [Typeinference] Prozessing statement: null Return null (f.apply( [ null (this(null)), m, ]))
|
||||||
FieldVar Assumptions:
|
Block DEBUG [Typeinference] Prozessing statement: TPH K Return TPH G (f: TPH E.apply( [ Matrix (this(null)), m: TPH C, ]))
|
||||||
[typinferenz.assumptions.FieldAssumption@1799e2e2]
|
Block DEBUG [Typeinference] Prozessing statement: TPH L Return TPH F (( [ TPH E f, ]) -> TPH K { [TPH K Return TPH G (f: TPH E.apply( [ Matrix (this(null)), m: TPH C, ]))])
|
||||||
LocalVar Assumptions:
|
|
||||||
[]
|
|
||||||
Parameter Assumptions:
|
|
||||||
[]
|
|
||||||
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: (var1 = NEW Klasse1)
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: null Return null (var1.getVar1( [ ]))
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: TPH K Return TPH J (var1: TPH A.getVar1( [ ]))
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: void(var1: TPH A = NEW Klasse1)
|
|
||||||
Class DEBUG [Typeinference] Erstellte Constraints: TPH A < TPH A
|
Class DEBUG [Typeinference] Erstellte Constraints: TPH A < TPH A
|
||||||
[(Klasse1 <. Klasse1), (Klasse1 <. Klasse1), ]
|
[(TPH H <. TPH G), (Matrix <. TPH I), (TPH C <. TPH J), (TPH E <. FunN), ]
|
||||||
Klasse1 < TPH A
|
TPH G < TPH K
|
||||||
TPH A < TPH I
|
Fun1< TPH K, TPH E > < TPH F
|
||||||
[(int <. TPH J), (TPH A <. Klasse1), (int <. TPH J), (TPH A <. Klasse1), ]
|
TPH F < TPH L
|
||||||
TPH J < TPH K
|
Fun1< TPH L, TPH C > < TPH D
|
||||||
TPH K < TPH B
|
TPH D < TPH A
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH A <. TPH A), (Klasse1 <. Klasse1), (Klasse1 <. TPH A), (TPH A <. TPH I), (int <. TPH J), (TPH A <. Klasse1), (TPH J <. TPH K), (TPH K <. TPH B)], [(TPH A <. TPH A), (Klasse1 <. Klasse1), (Klasse1 <. TPH A), (TPH A <. TPH I), (int <. TPH J), (TPH A <. Klasse1), (TPH J <. TPH K), (TPH K <. TPH B)], [(TPH A <. TPH A), (Klasse1 <. Klasse1), (Klasse1 <. TPH A), (TPH A <. TPH I), (int <. TPH J), (TPH A <. Klasse1), (TPH J <. TPH K), (TPH K <. TPH B)], [(TPH A <. TPH A), (Klasse1 <. Klasse1), (Klasse1 <. TPH A), (TPH A <. TPH I), (int <. TPH J), (TPH A <. Klasse1), (TPH J <. TPH K), (TPH K <. TPH B)]]
|
SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH A <. TPH A), (TPH H <. TPH G), (Matrix <. TPH I), (TPH C <. TPH J), (TPH E <. FunN), (TPH G <. TPH K), (Fun1< TPH K, TPH E > <. TPH F), (TPH F <. TPH L), (Fun1< TPH L, TPH C > <. TPH D), (TPH D <. TPH A)]]
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]]
|
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Matrix), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< ? super GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? super Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)], [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? super Matrix >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]]
|
||||||
SourceFile DEBUG [Typeinference]
|
SourceFile DEBUG [Typeinference]
|
||||||
JavaFiles:
|
JavaFiles:
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Matrix), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse2 extends Object
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
{
|
{
|
||||||
Klasse1 var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int testMethode()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
var1 = new Klasse1();
|
};
|
||||||
return var1.getVar1();;
|
};
|
||||||
}
|
Matrix Matrix()
|
||||||
Klasse2 Klasse2()
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]]
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
SourceFile DEBUG [Typeinference]
|
|
||||||
JavaFiles:
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse2 extends Object
|
|
||||||
{
|
{
|
||||||
Klasse1 var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int testMethode()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
var1 = new Klasse1();
|
};
|
||||||
return var1.getVar1();;
|
};
|
||||||
}
|
Matrix Matrix()
|
||||||
Klasse2 Klasse2()
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]]
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
SourceFile DEBUG [Typeinference]
|
|
||||||
JavaFiles:
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse2 extends Object
|
|
||||||
{
|
{
|
||||||
Klasse1 var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int testMethode()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
var1 = new Klasse1();
|
};
|
||||||
return var1.getVar1();;
|
};
|
||||||
}
|
Matrix Matrix()
|
||||||
Klasse2 Klasse2()
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]]
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
SourceFile DEBUG [Typeinference]
|
|
||||||
JavaFiles:
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = int), (TPH I = Klasse1), (TPH K = int), (TPH A = Klasse1), (TPH J = int)]
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse2 extends Object
|
|
||||||
{
|
{
|
||||||
Klasse1 var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int testMethode()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
var1 = new Klasse1();
|
};
|
||||||
return var1.getVar1();;
|
};
|
||||||
}
|
Matrix Matrix()
|
||||||
Klasse2 Klasse2()
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: null Return var1
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? extends Vector< ? super GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
Block DEBUG [Typeinference] Prozessing statement: TPH L Return var1: TPH D
|
|
||||||
Class DEBUG [Typeinference] Erstellte Constraints: TPH D < TPH D
|
|
||||||
TPH D < TPH L
|
|
||||||
TPH L < int
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH D <. TPH D), (TPH D <. TPH L), (TPH L <. int)]]
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH D = int), (TPH L = int)]]
|
|
||||||
SourceFile DEBUG [Typeinference]
|
|
||||||
JavaFiles:
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH D = int), (TPH L = int)]
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse1 extends Object
|
|
||||||
{
|
{
|
||||||
int var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int getVar1()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
return var1;
|
};
|
||||||
}
|
};
|
||||||
Klasse1 Klasse1()
|
Matrix Matrix()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Class DEBUG [Typeinference] Erstellte Assumptions: this: Klasse1Method Assumptions:
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? super Vector< GTV Integer > >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
[MethodAssumption: int int { [null Return var1], MethodAssumption: Klasse1 null { []]
|
|
||||||
FieldVar Assumptions:
|
|
||||||
[typinferenz.assumptions.FieldAssumption@744578e0]
|
|
||||||
LocalVar Assumptions:
|
|
||||||
[]
|
|
||||||
Parameter Assumptions:
|
|
||||||
[]
|
|
||||||
|
|
||||||
Block DEBUG [Typeinference] Prozessing statement: null Return var1
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
Block DEBUG [Typeinference] Prozessing statement: TPH M Return var1: TPH F
|
|
||||||
Class DEBUG [Typeinference] Erstellte Constraints: TPH F < TPH F
|
|
||||||
TPH F < TPH M
|
|
||||||
TPH M < int
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH F <. TPH F), (TPH F <. TPH M), (TPH M <. int)]]
|
|
||||||
SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH F = int), (TPH M = int)]]
|
|
||||||
SourceFile DEBUG [Typeinference]
|
|
||||||
JavaFiles:
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH F = int), (TPH M = int)]
|
|
||||||
|
|
||||||
SourceFile DEBUG [Typeinference] class Klasse1 extends Object
|
|
||||||
{
|
{
|
||||||
int var1;
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
int getVar1()
|
return (FunN f) -> {
|
||||||
{
|
return f.apply(this, m);;
|
||||||
return var1;
|
};
|
||||||
}
|
};
|
||||||
Klasse1 Klasse1()
|
Matrix Matrix()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH H <. TPH G), (TPH C <. TPH J), (TPH G <. TPH K), (TPH L = Fun1< TPH K, FunN >), (TPH A = Fun1< Fun1< TPH K, FunN >, TPH C >), (TPH I = Vector< ? super Matrix >), (TPH E = FunN), (TPH F = Fun1< TPH K, FunN >), (TPH D = Fun1< Fun1< TPH K, FunN >, TPH C >)]
|
||||||
|
|
||||||
|
SourceFile DEBUG [Typeinference] class <K, C>Matrix extends Vector<Vector<Integer>>
|
||||||
|
{
|
||||||
|
Fun1<Fun1<K, FunN>, C> op = (C m) -> {
|
||||||
|
return (FunN f) -> {
|
||||||
|
return f.apply(this, m);;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Matrix Matrix()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
11607
tools/y.output
11607
tools/y.output
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user