GenericParaListInsertTest PlugIn #158

Closed
opened 2015-03-04 10:32:29 +00:00 by pl · 3 comments
Owner

Folgendes Resultat liefret das PlugIn

class GenericParaListInsertTest{
<KTM, LVS extends KTM, KTN extends LVS, LVU extends MXZ > KTM methode(LVU a){return a;}
}

Das Ergbenis müsste LVU extends KTM sein.

Folgendes Resultat liefret das PlugIn class GenericParaListInsertTest{ <KTM, LVS extends KTM, KTN extends LVS, LVU extends MXZ > KTM methode(LVU a){return a;} } Das Ergbenis müsste LVU extends KTM sein.
Author
Owner

Problem ist, dass GTVs auch noch in die Typvariablen Liste aufgenommen werden müssen.

Vereifachtes Beispiel

class GenericParaListInsertTest{
A methode(a){return a;}
}

liefert

class GenericParaListInsertTest{
<A, B extends ABG > A methode(B a){return a;}
}

Es müsste aber auch noch

ABG extends A(GTV)

Dazugenommen werden.

Problem ist, dass GTVs auch noch in die Typvariablen Liste aufgenommen werden müssen. Vereifachtes Beispiel class GenericParaListInsertTest{ <A> A methode(a){return a;} } liefert class GenericParaListInsertTest{ <A, B extends ABG > A methode(B a){return a;} } Es müsste aber auch noch ABG extends A(GTV) Dazugenommen werden.
Owner

Beispiel:
class GenericParaListInsertTest{
<A, ABH extends A, C extends ABH, D, E extends D> A methode(a){return a;}
}

Es enstehen diese Constraints:
(TPH B <. TPH ABG),
(TPH ABG <. GTV A),
(void <. void)

Der Unify-Algorithmus berechnet aus diesen Constraints das Ergebnis:
(TPH B <. TPH ABG)

Sollten in diesem Fall nur "B extends ABG" eingesetzt werden, also das Ergebnis aus dem Unify
oder "B extends ABG, ABG extends A", also die Information die sich aus den erstellten Constraints ergeben.

Beispiel: class GenericParaListInsertTest{ <A, ABH extends A, C extends ABH, D, E extends D> A methode(a){return a;} } Es enstehen diese Constraints: (TPH B <. TPH ABG), (TPH ABG <. GTV A), (void <. void) Der Unify-Algorithmus berechnet aus diesen Constraints das Ergebnis: (TPH B <. TPH ABG) Sollten in diesem Fall nur "B extends ABG" eingesetzt werden, also das Ergebnis aus dem Unify oder "B extends ABG, ABG extends A", also die Information die sich aus den erstellten Constraints ergeben.
Author
Owner

War ein Fehler im TUnify.

Der Fall Typ <. GTV war nicht berücksichtigt worden.
Deshalb wurde der Constraint gelöscht.

War ein Fehler im TUnify. Der Fall Typ <. GTV war nicht berücksichtigt worden. Deshalb wurde der Constraint gelöscht.
Sign in to join this conversation.
No Milestone
No project
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#158
No description provided.