From 4a67a4a58e5351770519657ae16c51c1f24667b4 Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Wed, 7 May 2014 21:57:29 +0200 Subject: [PATCH] =?UTF-8?q?Object=20wird=20standardm=C3=A4=C3=9Fig=20impor?= =?UTF-8?q?tiert.=20TestFiles=20angef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mycompiler/SourceFile.java | 3 + src/mycompiler/myclass/Generic.java | 1 + src/typinferenz/TypeInsertPoint.java | 2 +- src/typinferenz/TypeInsertSet.java | 17 +- .../test/lambda/BasicAssumptions.jav | 4 +- test/mycompiler/test/lambda/TestAssign.java | 2 +- .../test/lambda/TestMethodCall.java | 1 - .../test/lambda/testResults/LambdaTest.log | 591 +++++++++++++++++- .../TypeInsertSetEqualTest.jav | 10 + .../TypeInsertSetEqualTest.java | 48 ++ .../TypeInsertTests/IntTest.jav | 6 + .../TypeInsertTests/IntTest.java | 18 + 12 files changed, 678 insertions(+), 25 deletions(-) create mode 100644 test/plugindevelopment/TypeInsertSetEqualTest.jav create mode 100644 test/plugindevelopment/TypeInsertSetEqualTest.java create mode 100644 test/plugindevelopment/TypeInsertTests/IntTest.jav create mode 100644 test/plugindevelopment/TypeInsertTests/IntTest.java diff --git a/src/mycompiler/SourceFile.java b/src/mycompiler/SourceFile.java index fe546e84..e77d56a5 100755 --- a/src/mycompiler/SourceFile.java +++ b/src/mycompiler/SourceFile.java @@ -1092,6 +1092,9 @@ public class SourceFile Modifiers mod = new Modifiers(); mod.addModifier(new Public()); + //Für Object: + //TODO: toString()-Methode gerät nicht in die BasicAssumptions + imports.add(new UsedId("java.lang.Object",-1)); // Für jede einzelne Klasse while (imports.size()>0) { diff --git a/src/mycompiler/myclass/Generic.java b/src/mycompiler/myclass/Generic.java index b26a2257..3c569b98 100644 --- a/src/mycompiler/myclass/Generic.java +++ b/src/mycompiler/myclass/Generic.java @@ -11,4 +11,5 @@ import mycompiler.mytype.GenericTypeVar; */ public interface Generic { public void setGenericParameter(Vector params); + //public int getGenericParameterOffset(); } diff --git a/src/typinferenz/TypeInsertPoint.java b/src/typinferenz/TypeInsertPoint.java index 5f221900..7ac41981 100644 --- a/src/typinferenz/TypeInsertPoint.java +++ b/src/typinferenz/TypeInsertPoint.java @@ -91,7 +91,7 @@ public class TypeInsertPoint implements Comparable{ if(! (obj instanceof TypeInsertPoint))return false; TypeInsertPoint equals = (TypeInsertPoint) obj; if(!(equals.getInsertNode().equals(this.getInsertNode())))return false; - if(!(equals.resultSet.equals(this.resultSet)))return false; + if(!(equals.resultSet.equals(this.resultSet)))return false; //ResultSet spielt bei Equals keine Rolle if(!(equals.getInsertType().equals(this.getInsertType())))return false; return true; diff --git a/src/typinferenz/TypeInsertSet.java b/src/typinferenz/TypeInsertSet.java index 80a17581..76ca85a5 100644 --- a/src/typinferenz/TypeInsertSet.java +++ b/src/typinferenz/TypeInsertSet.java @@ -35,17 +35,15 @@ public class TypeInsertSet { * @param typeInsertPoint * @return */ - public Vector add(TypeInsertPoint typeInsertPoint) { + public void add(TypeInsertPoint typeInsertPoint) { if( typeInsertPoint!=null && ! this.points.contains(typeInsertPoint)){ //Nur falls typeInsertPoint noch nicht im Set vorhanden ist: points.add(typeInsertPoint); - return typeInsertPoint.getUnresolvedTPH(); } - return new Vector(); } public void add(GenericTypeInsertPoint typeInsertPoint) { //this.add((TypeInsertPoint)typeInsertPoint); - this.genericTypeInsertPoints.add(typeInsertPoint); + if(!this.genericTypeInsertPoints.contains(typeInsertPoint))this.genericTypeInsertPoints.add(typeInsertPoint); } /** @@ -107,13 +105,20 @@ public class TypeInsertSet { if(! (obj instanceof TypeInsertSet))return false; TypeInsertSet equals = (TypeInsertSet) obj; if(points.size()!=equals.points.size())return false; + for(TypeInsertPoint point : points){ //Jeder TypeInsertPoint muss auch in equals vorkommen: - if(!equals.points.contains(point))return false; + if(!equals.points.contains(point)) + return false; //... aber nicht öfter als 1x : if(equals.points.lastIndexOf(point)!=equals.points.indexOf(point))return false; } - + for(GenericTypeInsertPoint point : this.genericTypeInsertPoints){ + //Jeder TypeInsertPoint muss auch in equals vorkommen: + if(!equals.genericTypeInsertPoints.contains(point))return false; + //... aber nicht öfter als 1x : + if(equals.genericTypeInsertPoints.lastIndexOf(point)!=equals.genericTypeInsertPoints.indexOf(point))return false; + } return true; } diff --git a/test/mycompiler/test/lambda/BasicAssumptions.jav b/test/mycompiler/test/lambda/BasicAssumptions.jav index f9da2d18..16726c82 100755 --- a/test/mycompiler/test/lambda/BasicAssumptions.jav +++ b/test/mycompiler/test/lambda/BasicAssumptions.jav @@ -1,3 +1,5 @@ +import java.util.Vector; + class BasicAssumptionsTest{ varString; @@ -5,6 +7,6 @@ var = 2; void methode(){ var = 1; - varString = varString.toString(); + varString.add(var); } } \ No newline at end of file diff --git a/test/mycompiler/test/lambda/TestAssign.java b/test/mycompiler/test/lambda/TestAssign.java index ac98bb26..83e101c7 100755 --- a/test/mycompiler/test/lambda/TestAssign.java +++ b/test/mycompiler/test/lambda/TestAssign.java @@ -18,7 +18,7 @@ public class TestAssign extends TestCase{ @Test public void test() { - variableTypeAssumptions.put("stringVar", "String"); + variableTypeAssumptions.put("stringVar", "java.lang.String"); executeTest(); } diff --git a/test/mycompiler/test/lambda/TestMethodCall.java b/test/mycompiler/test/lambda/TestMethodCall.java index 4be420a8..5e39ba27 100755 --- a/test/mycompiler/test/lambda/TestMethodCall.java +++ b/test/mycompiler/test/lambda/TestMethodCall.java @@ -24,7 +24,6 @@ public class TestMethodCall { public void executeTest(){ LambdaTest tester = new LambdaTest(exampleJavFile); tester.runTestAndCheckResultSet(classname, variableTypeAssumptions); - } } diff --git a/test/mycompiler/test/lambda/testResults/LambdaTest.log b/test/mycompiler/test/lambda/testResults/LambdaTest.log index 517ef662..738a2940 100644 --- a/test/mycompiler/test/lambda/testResults/LambdaTest.log +++ b/test/mycompiler/test/lambda/testResults/LambdaTest.log @@ -8,13 +8,13 @@ LocalVar Assumptions: Parameter Assumptions: [] Konstruktor Assumptions: -[MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.Character [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Long []()] +[MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.Character [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Object []()] Class Assumptions: -[java.lang.Integer, java.lang.String, java.lang.Character, java.lang.Boolean, java.lang.Double, java.lang.Float, java.lang.Long] +[java.lang.Integer, java.lang.String, java.lang.Character, java.lang.Boolean, java.lang.Double, java.lang.Float, java.lang.Long, java.lang.Object] -Class DEBUG [Typeinference] Erstellte Assumptions: this: WhileTest +Class DEBUG [Typeinference] Erstellte Assumptions: this: LambdaTest1 Method Assumptions: -[MethodAssumption: GTV R [apply](), MethodAssumption: GTV R [apply](GTV T1 T1), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3,GTV T4 T4), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3,GTV T4 T4,GTV T5 T5), MethodAssumption: TPH B [method]()] +[MethodAssumption: GTV R [apply](), MethodAssumption: GTV R [apply](GTV T1 T1), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3,GTV T4 T4), MethodAssumption: GTV R [apply](GTV T1 T1,GTV T2 T2,GTV T3 T3,GTV T4 T4,GTV T5 T5), MethodAssumption: TPH B [method](String toAppend)] FieldVar Assumptions: [FieldAssumption: TPH A var, FieldAssumption: int MIN_VALUE, FieldAssumption: int MAX_VALUE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: int SIZE, FieldAssumption: java.util.Comparator CASE_INSENSITIVE_ORDER, FieldAssumption: int MIN_RADIX, FieldAssumption: int MAX_RADIX, FieldAssumption: char MIN_VALUE, FieldAssumption: char MAX_VALUE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: byte UNASSIGNED, FieldAssumption: byte UPPERCASE_LETTER, FieldAssumption: byte LOWERCASE_LETTER, FieldAssumption: byte TITLECASE_LETTER, FieldAssumption: byte MODIFIER_LETTER, FieldAssumption: byte OTHER_LETTER, FieldAssumption: byte NON_SPACING_MARK, FieldAssumption: byte ENCLOSING_MARK, FieldAssumption: byte COMBINING_SPACING_MARK, FieldAssumption: byte DECIMAL_DIGIT_NUMBER, FieldAssumption: byte LETTER_NUMBER, FieldAssumption: byte OTHER_NUMBER, FieldAssumption: byte SPACE_SEPARATOR, FieldAssumption: byte LINE_SEPARATOR, FieldAssumption: byte PARAGRAPH_SEPARATOR, FieldAssumption: byte CONTROL, FieldAssumption: byte FORMAT, FieldAssumption: byte PRIVATE_USE, FieldAssumption: byte SURROGATE, FieldAssumption: byte DASH_PUNCTUATION, FieldAssumption: byte START_PUNCTUATION, FieldAssumption: byte END_PUNCTUATION, FieldAssumption: byte CONNECTOR_PUNCTUATION, FieldAssumption: byte OTHER_PUNCTUATION, FieldAssumption: byte MATH_SYMBOL, FieldAssumption: byte CURRENCY_SYMBOL, FieldAssumption: byte MODIFIER_SYMBOL, FieldAssumption: byte OTHER_SYMBOL, FieldAssumption: byte INITIAL_QUOTE_PUNCTUATION, FieldAssumption: byte FINAL_QUOTE_PUNCTUATION, FieldAssumption: byte DIRECTIONALITY_UNDEFINED, FieldAssumption: byte DIRECTIONALITY_LEFT_TO_RIGHT, FieldAssumption: byte DIRECTIONALITY_RIGHT_TO_LEFT, FieldAssumption: byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC, FieldAssumption: byte DIRECTIONALITY_EUROPEAN_NUMBER, FieldAssumption: byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR, FieldAssumption: byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR, FieldAssumption: byte DIRECTIONALITY_ARABIC_NUMBER, FieldAssumption: byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR, FieldAssumption: byte DIRECTIONALITY_NONSPACING_MARK, FieldAssumption: byte DIRECTIONALITY_BOUNDARY_NEUTRAL, FieldAssumption: byte DIRECTIONALITY_PARAGRAPH_SEPARATOR, FieldAssumption: byte DIRECTIONALITY_SEGMENT_SEPARATOR, FieldAssumption: byte DIRECTIONALITY_WHITESPACE, FieldAssumption: byte DIRECTIONALITY_OTHER_NEUTRALS, FieldAssumption: byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING, FieldAssumption: byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE, FieldAssumption: byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING, FieldAssumption: byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE, FieldAssumption: byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT, FieldAssumption: char MIN_HIGH_SURROGATE, FieldAssumption: char MAX_HIGH_SURROGATE, FieldAssumption: char MIN_LOW_SURROGATE, FieldAssumption: char MAX_LOW_SURROGATE, FieldAssumption: char MIN_SURROGATE, FieldAssumption: char MAX_SURROGATE, FieldAssumption: int MIN_SUPPLEMENTARY_CODE_POINT, FieldAssumption: int MIN_CODE_POINT, FieldAssumption: int MAX_CODE_POINT, FieldAssumption: int SIZE, FieldAssumption: java.lang.Boolean TRUE, FieldAssumption: java.lang.Boolean FALSE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: double POSITIVE_INFINITY, FieldAssumption: double NEGATIVE_INFINITY, FieldAssumption: double NaN, FieldAssumption: double MAX_VALUE, FieldAssumption: double MIN_NORMAL, FieldAssumption: double MIN_VALUE, FieldAssumption: int MAX_EXPONENT, FieldAssumption: int MIN_EXPONENT, FieldAssumption: int SIZE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: float POSITIVE_INFINITY, FieldAssumption: float NEGATIVE_INFINITY, FieldAssumption: float NaN, FieldAssumption: float MAX_VALUE, FieldAssumption: float MIN_NORMAL, FieldAssumption: float MIN_VALUE, FieldAssumption: int MAX_EXPONENT, FieldAssumption: int MIN_EXPONENT, FieldAssumption: int SIZE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: long MIN_VALUE, FieldAssumption: long MAX_VALUE, FieldAssumption: java.lang.Class TYPE, FieldAssumption: int SIZE] LocalVar Assumptions: @@ -22,22 +22,583 @@ LocalVar Assumptions: Parameter Assumptions: [] Konstruktor Assumptions: -[MethodAssumption: WhileTest [WhileTest](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.Character [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Long []()] +[MethodAssumption: LambdaTest1 [LambdaTest1](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.Integer [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.String [](), MethodAssumption: java.lang.Character [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Boolean [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Double [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Float [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Long [](), MethodAssumption: java.lang.Object []()] Class Assumptions: -[Fun0, Fun1, Fun2, Fun3, Fun4, Fun5, WhileTest, java.lang.Integer, java.lang.String, java.lang.Character, java.lang.Boolean, java.lang.Double, java.lang.Float, java.lang.Long] +[Fun0, Fun1, Fun2, Fun3, Fun4, Fun5, LambdaTest1, java.lang.Integer, java.lang.String, java.lang.Character, java.lang.Boolean, java.lang.Double, java.lang.Float, java.lang.Long, java.lang.Object] -Block DEBUG [Typeinference] Prozessing statement: WHILE null { [(var = mycompiler.mystatement.StringLiteral@6110e3b5)] -Block DEBUG [Typeinference] Prozessing statement: (var = mycompiler.mystatement.StringLiteral@6110e3b5) -Block DEBUG [Typeinference] Prozessing statement: void(var: TPH A = mycompiler.mystatement.StringLiteral@6110e3b5) -Block DEBUG [Typeinference] Prozessing statement: WHILE void { [void(var: TPH A = mycompiler.mystatement.StringLiteral@6110e3b5)] +Block DEBUG [Typeinference] Prozessing statement: null Return null (( [ String text, ]) -> null { [null Return toAppend]) +Block DEBUG [Typeinference] Prozessing statement: null Return toAppend +Block DEBUG [Typeinference] Prozessing statement: TPH AG Return toAppend: java.lang.String +Block DEBUG [Typeinference] Prozessing statement: TPH AH Return TPH AF (( [ String text, ]) -> TPH AG { [TPH AG Return toAppend: java.lang.String]) Class DEBUG [Typeinference] Erstellte Constraints: TPH A < TPH A -java.lang.Boolean < boolean java.lang.String < TPH A -TPH A < TPH AE -void < TPH B +java.lang.String < TPH AG +Fun1< TPH AG, String > < TPH AF +TPH AF < TPH AH +TPH AH < TPH B -SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH A <. TPH A), (java.lang.Boolean <. boolean), (java.lang.String <. TPH A), (TPH A <. TPH AE), (void <. TPH B)]] -SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [] +SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH A <. TPH A), (java.lang.String <. TPH A), (java.lang.String <. TPH AG), (Fun1< TPH AG, String > <. TPH AF), (TPH AF <. TPH AH), (TPH AH <. TPH B)]] +SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH B = Fun1< java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)], [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)], [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)], [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)], [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)], [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)], [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)]] SourceFile DEBUG [Typeinference] JavaFiles: +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? extends String >), (TPH AH = Fun1< ? extends java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? extends String >), (TPH AH = Fun1< ? super java.lang.String, ? extends String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? extends String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? extends java.lang.String, ? super String >), (TPH AH = Fun1< ? extends java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH B = Fun1< ? super java.lang.String, ? super String >), (TPH AH = Fun1< ? super java.lang.String, ? super String >), (TPH A = java.lang.String), (TPH AG = java.lang.String), (TPH AF = Fun1< java.lang.String, ? super String >)] + +SourceFile DEBUG [Typeinference] class LambdaTest1 extends Object +{ +java.lang.String var = "test"; +Fun1 method(java.lang.String toAppend) +{ +return (String text) -> { +return toAppend; +}; +} +LambdaTest1 LambdaTest1() +{ +} +} + diff --git a/test/plugindevelopment/TypeInsertSetEqualTest.jav b/test/plugindevelopment/TypeInsertSetEqualTest.jav new file mode 100644 index 00000000..cf9cf8ba --- /dev/null +++ b/test/plugindevelopment/TypeInsertSetEqualTest.jav @@ -0,0 +1,10 @@ +import java.util.Vector; + +class ImportTest{ +Vector var; +var2; +methode(){ + var.add(var2); +} + +} \ No newline at end of file diff --git a/test/plugindevelopment/TypeInsertSetEqualTest.java b/test/plugindevelopment/TypeInsertSetEqualTest.java new file mode 100644 index 00000000..836aa2b0 --- /dev/null +++ b/test/plugindevelopment/TypeInsertSetEqualTest.java @@ -0,0 +1,48 @@ +package plugindevelopment; + +import java.io.File; +import java.io.IOException; +import java.util.Vector; + +import junit.framework.TestCase; +import mycompiler.MyCompiler; +import mycompiler.MyCompilerAPI; +import mycompiler.myparser.JavaParser.yyException; +import mycompiler.mytypereconstruction.TypeinferenceResultSet; + +import org.junit.Test; + +import typinferenz.TypeInsertSet; + +public class TypeInsertSetEqualTest { + + + private static final String TEST_FILE = "TypeInsertSetEqualTest.jav"; + + @Test + public void run(){ + String inferedSource = ""; + MyCompilerAPI compiler = MyCompiler.getAPI(); + try { + compiler.parse(new File(TypeInsertTester.rootDirectory + TEST_FILE)); + Vector results = compiler.typeReconstruction(); + //TestCase.assertTrue("Es darf nicht mehr als eine Lösungsmöglichkeit geben und nicht "+results.size(), results.size()==1); + Vector insertSets = new Vector(); + for(TypeinferenceResultSet result : results){ + TypeInsertSet point = result.getTypeInsertionPoints(); + if(!insertSets.contains(point))insertSets.add(point); + //TestCase.assertTrue("Es muss mindestens ein TypeInsertSet vorhanden sein", points.size()>0); + + } + if(insertSets.size()!=1){ + TestCase.fail("Es darf nur ein TypeInsertSet geben und nicht "+insertSets.size()); + } + + } catch (IOException | yyException e) { + e.printStackTrace(); + TestCase.fail(); + } + + } + +} diff --git a/test/plugindevelopment/TypeInsertTests/IntTest.jav b/test/plugindevelopment/TypeInsertTests/IntTest.jav new file mode 100644 index 00000000..30577294 --- /dev/null +++ b/test/plugindevelopment/TypeInsertTests/IntTest.jav @@ -0,0 +1,6 @@ +class IntTest{ + var; + int methode(){ + return var; + } +} diff --git a/test/plugindevelopment/TypeInsertTests/IntTest.java b/test/plugindevelopment/TypeInsertTests/IntTest.java new file mode 100644 index 00000000..8020e667 --- /dev/null +++ b/test/plugindevelopment/TypeInsertTests/IntTest.java @@ -0,0 +1,18 @@ +package plugindevelopment.TypeInsertTests; + +import java.util.Vector; + +import org.junit.Test; + +public class IntTest { + + private static final String TEST_FILE = "IntTest.jav"; + + @Test + public void run(){ + Vector mustContain = new Vector(); + mustContain.add("int var"); + MultipleTypesInsertTester.test(this.TEST_FILE, mustContain); + } + +}