Class DEBUG [Typeinference] Erstellte Assumptions: Set { op: TPH C, : NOPARAS --> TestLambda } Block DEBUG [Typeinference] Prozessing statement: null Return (test = mycompiler.mystatement.StringLiteral@3f78d35f) Block DEBUG [Typeinference] Prozessing statement: TPH G Return TPH F(test: TPH D = mycompiler.mystatement.StringLiteral@3f78d35f) Class DEBUG [Typeinference] Erstellte Constraints: String < TPH D TPH D < TPH F TPH F < TPH G Fun1< TPH G, TPH D > < TPH E TPH E < TPH C TPH C < TPH H Class DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(String <. TPH D), (TPH D <. TPH F), (TPH F <. TPH G), (Fun1< TPH G, TPH D > <. TPH E), (TPH E <. TPH C), (TPH C <. TPH H)]] Class DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH G = String), (TPH H = Fun1< String, String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)], [(TPH G = String), (TPH H = Fun1< String, ? extends String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)], [(TPH G = String), (TPH H = Fun1< String, ? super String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)], [(TPH G = String), (TPH H = Fun1< String, ? extends String >), (TPH F = String), (TPH C = Fun1< String, ? extends String >), (TPH D = String), (TPH E = Fun1< String, String >)], [(TPH G = String), (TPH H = Fun1< String, ? super String >), (TPH F = String), (TPH C = Fun1< String, ? super String >), (TPH D = String), (TPH E = Fun1< String, String >)]] Class DEBUG [Typeinference] Typinformationen: TestLambda: (TPH C op = TPH E :: (TPH D test) -> TPH G :: (Return (TPH D test = "string" : String) : TPH F) ) : void Class DEBUG [Typeinference] JavaFiles: Class DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH G = String), (TPH H = Fun1< String, String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)] Class DEBUG [Typeinference] class TestLambda extends Object { Fun1 op = (String test) -> { return test = "string"; }; } Class DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH G = String), (TPH H = Fun1< String, ? extends String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)] Class DEBUG [Typeinference] class TestLambda extends Object { Fun1 op = (String test) -> { return test = "string"; }; } Class DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH G = String), (TPH H = Fun1< String, ? super String >), (TPH F = String), (TPH C = Fun1< String, String >), (TPH D = String), (TPH E = Fun1< String, String >)] Class DEBUG [Typeinference] class TestLambda extends Object { Fun1 op = (String test) -> { return test = "string"; }; } Class DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH G = String), (TPH H = Fun1< String, ? extends String >), (TPH F = String), (TPH C = Fun1< String, ? extends String >), (TPH D = String), (TPH E = Fun1< String, String >)] Class DEBUG [Typeinference] class TestLambda extends Object { Fun1 op = (String test) -> { return test = "string"; }; } Class DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH G = String), (TPH H = Fun1< String, ? super String >), (TPH F = String), (TPH C = Fun1< String, ? super String >), (TPH D = String), (TPH E = Fun1< String, String >)] Class DEBUG [Typeinference] class TestLambda extends Object { Fun1 op = (String test) -> { return test = "string"; }; }