TPH nicht im Resultset #216

Open
opened 2023-06-16 11:02:34 +00:00 by dholle · 1 comment
Owner

Beispiel
(in resources/insertGenericsJav/TestVector.jav)

import java.util.Vector;

public class TestVector {

m(v, w) {
	w.addElement(id(v.elementAt(0)));
}

id(x) {
	return x;
}

}

TestVector()({
super(());
})::TPH AN
TPH N m(TPH O v, TPH P w)({
((w)::TPH P.addElement Signature: [TPH AA, TPH AB](((this)::TPH Q.id Signature: [TPH W, TPH X](((v)::TPH O.elementAt Signature: TPH S, TPH T)::TPH U))::TPH Y))::TPH AC;
return;
})::TPH AE

TPH AF id(TPH AG x)({
return (x)::TPH AG;
})::TPH AH

TestVector()({
super(());
})::TPH AK

}

AA ist in der Signatur vorhanden. Die Constraints sind:
[(U < AG), (ACY < U), (AG < AF), (Y < ACX), (AF < Y)]

Beispiel (in resources/insertGenericsJav/TestVector.jav) import java.util.Vector; public class TestVector { m(v, w) { w.addElement(id(v.elementAt(0))); } id(x) { return x; } } TestVector()({ super(()); })::TPH AN TPH N m(TPH O v, TPH P w)({ ((w)::TPH P.addElement Signature: [TPH AA, TPH AB](((this)::TPH Q.id Signature: [TPH W, TPH X](((v)::TPH O.elementAt Signature: [TPH S, TPH T](0))::TPH U))::TPH Y))::TPH AC; return; })::TPH AE TPH AF id(TPH AG x)({ return (x)::TPH AG; })::TPH AH TestVector()({ super(()); })::TPH AK } AA ist in der Signatur vorhanden. Die Constraints sind: [(U < AG), (ACY < U), (AG < AF), (Y < ACX), (AF < Y)]
Owner

Die Lösung ohne Anwendung der Generated Generics wäre:

import java.util.Vector;

public class TestVector {

<U extends AG, ACY extends U, AG extends AF, Y extends ACX, AF extends Y, ACX>
void m(Vector<ACY> v, Vector<ACX> w) {
	w.addElement(id(v.elementAt(0)));
}

<AG extends AF, AF> AF id(AG x) {
	return x;
}

}

Die Brücke bilden:
ACY extends U, U extends AG, AG extends AF, AF extends Y, Y extends ACX

Nach der Anwendung der Generated Generics sähe das so aus:
import java.util.Vector;

public class TestVector {

<ACY extends ACX, ACX>
void m(Vector<ACY> v, Vector<ACX> w) {
	w.addElement(id(v.elementAt(0)));
}

<AG> AG id(AG x) {
	return x;
}

}

Das

public class TestVector {
public TestVector();
public <ACY, ACX> void m(java.util.Vector, java.util.Vector);
public AG id(AG);
}

ist also nur ins sofern alsch als dass "ACY extends ACX" fehlt

Die Lösung ohne Anwendung der Generated Generics wäre: import java.util.Vector; public class TestVector { <U extends AG, ACY extends U, AG extends AF, Y extends ACX, AF extends Y, ACX> void m(Vector<ACY> v, Vector<ACX> w) { w.addElement(id(v.elementAt(0))); } <AG extends AF, AF> AF id(AG x) { return x; } } Die Brücke bilden: ACY extends U, U extends AG, AG extends AF, AF extends Y, Y extends ACX Nach der Anwendung der Generated Generics sähe das so aus: import java.util.Vector; public class TestVector { <ACY extends ACX, ACX> void m(Vector<ACY> v, Vector<ACX> w) { w.addElement(id(v.elementAt(0))); } <AG> AG id(AG x) { return x; } } Das public class TestVector { public TestVector(); public <ACY, ACX> void m(java.util.Vector<ACY>, java.util.Vector<ACX>); public <AG> AG id(AG); } ist also nur ins sofern alsch als dass "ACY extends ACX" fehlt
dholle added the
generics
label 2024-03-04 11:23:24 +00:00
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#216
No description provided.