Fehlerhafte Overloading Auflösung #49

Closed
opened 2019-05-29 00:11:37 +00:00 by pl · 2 comments
Owner

Die OL.jav

import java.lang.String;
import java.lang.Integer;
import java.lang.Double;
import java.lang.Boolean;
import java.util.Vector;

public class OL {

m(x) { return x + x; 
 
m(Boolean x) { return x; } 

}

class OLMain {

main(x) { 
	var ol;
	ol = new OL(); 
	return ol.m(x); 
}  

}

erzeugt:

public java.lang.Boolean main(java.lang.Boolean);
descriptor: (Ljava/lang/Boolean;)Ljava/lang/Boolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
0: new #13 // class OL
3: dup
4: invokespecial #14 // Method OL."":()V
7: astore_2
8: aload_2
9: aload_1
10: invokevirtual #17 // Method OL.m:(Ljava/lang/Double;)Ljava/lang/Double;
13: areturn

Double ist hier falsch. Vermutlich wird die falsche Methode der überladenen Methoden m aus OL.jav falsch auswählt.

Die OL.jav import java.lang.String; import java.lang.Integer; import java.lang.Double; import java.lang.Boolean; import java.util.Vector; public class OL { m(x) { return x + x; m(Boolean x) { return x; } } class OLMain { main(x) { var ol; ol = new OL(); return ol.m(x); } } erzeugt: public java.lang.Boolean main(java.lang.Boolean); descriptor: (Ljava/lang/Boolean;)Ljava/lang/Boolean; flags: (0x0001) ACC_PUBLIC Code: stack=2, locals=3, args_size=2 0: new #13 // class OL 3: dup 4: invokespecial #14 // Method OL."<init>":()V 7: astore_2 8: aload_2 9: aload_1 10: invokevirtual #17 // Method OL.m:(Ljava/lang/Double;)Ljava/lang/Double; 13: areturn Double ist hier falsch. Vermutlich wird die falsche Methode der überladenen Methoden m aus OL.jav falsch auswählt.

Gefixt.

branch bytecode 2
commit 3c36c61077

Gefixt. branch bytecode 2 commit 3c36c6107797c3c14e23619b96b6b3aa18259bd7

getestet funktioniert!

getestet funktioniert!
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 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#49
No description provided.