Falsche Generics bei List #315

Open
opened 2024-04-07 15:39:36 +00:00 by pl · 0 comments
Owner

import java.lang.Boolean;
import java.lang.Object;

class List {
    elem;
    next;

    List() {
		super();
    }

    List(elem, next) {
		this.elem = elem;
		this.next = next;
    }
    
    addElement(newElem) {
    	return new List(newElem, this);
    }
    
    append(l) {
       if (next == null) {
       	return l;
       }
       else {
       	return new List(elem, next.append(l));
       }
    }
}

Sollte eigentlich liefern:

class List<O> {
    O elem;
    List<O> next;

    ...
    
    <AF extends O> addElement(newElem AF) {
    	return new List(newElem, this);
    }
    
    ...
}

liefert aber

class List<AAC extends java.lang.Object, AAC extends AAC> { 

...

 <AF extends AAC> List addElement(AF) { ... }
}

Simplified constraints: [(BA < BB), (N < W), (W < N), (AF < W)] sind noch korrekt:

Nun müsste eigentlich [(N < W), (W < N)] als Cycle erkannt werden und BA < BB als intern gelöscht werden.

Wie sehen die JavaTX-Signaturen aus, wie kann ich die sichtbar machen?

import java.lang.Boolean; import java.lang.Object; ``` class List { elem; next; List() { super(); } List(elem, next) { this.elem = elem; this.next = next; } addElement(newElem) { return new List(newElem, this); } append(l) { if (next == null) { return l; } else { return new List(elem, next.append(l)); } } } ``` Sollte eigentlich liefern: ``` class List<O> { O elem; List<O> next; ... <AF extends O> addElement(newElem AF) { return new List(newElem, this); } ... } ``` liefert aber ``` class List<AAC extends java.lang.Object, AAC extends AAC> { ... <AF extends AAC> List addElement(AF) { ... } } ``` Simplified constraints: [(BA < BB), (N < W), (W < N), (AF < W)] sind noch korrekt: Nun müsste eigentlich [(N < W), (W < N)] als Cycle erkannt werden und BA < BB als intern gelöscht werden. Wie sehen die JavaTX-Signaturen aus, wie kann ich die sichtbar machen?
pl added the
generics
label 2024-04-07 15:39:36 +00:00
dholle was assigned by pl 2024-04-07 15:39:36 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 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#315
No description provided.