Id.jav falscher MethodType #175

Closed
opened 2015-09-23 11:05:39 +00:00 by pl · 3 comments
Owner

javap -v Id.class liefert

...
#15 = MethodType #8 // (-Ljava/lang/Integer;)Ljava/lang/Integer;
...

Das "-" bei (-Ljava/lang/Integer;)Ljava/lang/Integer

dürfte falsch sein.

javap -v Id.class liefert ... #15 = MethodType #8 // (-Ljava/lang/Integer;)Ljava/lang/Integer; ... Das "-" bei (-Ljava/lang/Integer;)Ljava/lang/Integer dürfte falsch sein.
Owner

Das "-" bei (-Ljava/lang/Integer;)Ljava/lang/Integer

Im unifizierten ResultSet steht:
(TPH ABH = java.lang.Integer),
(TPH B = java.lang.Integer),
(TPH ABG = Fun1< ? extends TPH ABH, ? super TPH B >),

> Das "-" bei (-Ljava/lang/Integer;)Ljava/lang/Integer Im unifizierten ResultSet steht: (TPH ABH = java.lang.Integer), (TPH B = java.lang.Integer), (TPH ABG = Fun1< ? extends TPH ABH, ? super TPH B >),
Owner

Problem teilweise gelöst.
In der Angabe des MethodenTyps des LambdaAusdrucks für die InvokeDynamic Instruktion werden keine WildcardTypen verwendet. Typ wird somit zu:
(Ljava/lang/Integer;)Ljava/lang/Integer

Dennoch ist die Typisierung des Lambda-Ausdrucks streng genommen nicht korrekt.

Beispiel:

op = (Integer x)->x;

Der Typinferenzalgorithmus berechnet den allgemeinsten Typ für das Feld op:
Fun1<? extends Integer, ? super Integer>
Dies ist allerdings nicht der Typ des Lambda-Ausdrucks, welcher schlicht:
(Ljava/lang/Integer;)Ljava/lang/Integer ist.

Problem teilweise gelöst. In der Angabe des MethodenTyps des LambdaAusdrucks für die InvokeDynamic Instruktion werden keine WildcardTypen verwendet. Typ wird somit zu: (Ljava/lang/Integer;)Ljava/lang/Integer Dennoch ist die Typisierung des Lambda-Ausdrucks streng genommen nicht korrekt. Beispiel: op = (Integer x)->x; Der Typinferenzalgorithmus berechnet den allgemeinsten Typ für das Feld op: Fun1<? extends Integer, ? super Integer> Dies ist allerdings nicht der Typ des Lambda-Ausdrucks, welcher schlicht: (Ljava/lang/Integer;)Ljava/lang/Integer ist.
Owner

OLD BUG

OLD BUG
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#175
No description provided.