[targetBytecode] Tph4 #94
Labels
No Label
Codegen
confirmed
duplicate
Eclipse-Plugin
Feature Request
generics
in progress
invalid
JavaCompilerCore
needs info
Parser
Trash
Type
Unify
won't fix
works for me
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JavaTX/JavaCompilerCore#94
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Schritt zwei im Paper INSIGHTS:
Neue konstruierte Paare T1 < T2 der Methode m die in der transitiven Hülle
T1 < R1 <= R2 < T2 mit R1 <= R2 in der Methode m2 die in m aufgerufen wird.
Die Constraints von tph4 lauten:
[(TPH O < TPH X), (TPH X < TPH P), (TPH P < TPH X), (TPH X < TPH M)]
Die reflexive und transitive Hülle von m2 ist [(TPH X < TPH X)]
Also werden logischerweise die Constraints
O < X < P, P < X < M und O < X < M hinzugefügt.
(Meine Implementierung stimmt also)
Da nun allerdings O < P, P < X und O < M in den Constraints stehen kommt der Cycle und Infima Detektor durcheinander da O zwei Bounds hat.
Also komme ich zu dem Schluss, dass O < M schon bei diesem Schritt aussortiert werden muss. Ich bräuchte also einen Algortihmus dafür.
Die Typvariablen von m sind [TPH P, TPH M, TPH N, TPH O]
class Tph4 {
Tph4()({
super(());
})::TPH AI
TPH M m(TPH N a, TPH O b)({
TPH P c;
(c)::TPH P = ((this)::TPH Q.m2((b)::TPH O))::TPH S;
TPH M d;
(d)::TPH M = ((this)::TPH V.m2((c)::TPH P))::TPH X;
return (d)::TPH M;
})::TPH Z
TPH X m2(TPH X b)({
return (b)::TPH X;
})::TPH AC
Tph4()({
super(());
})::TPH AF
}
Branch: targetBytecode
commit:
0c9612a2ea
class UseTph4 {
public static void main(String[] args) {
System.out.println(new Tph4().m2("s"));
System.out.println(new Tph4().m(1,2));
}
}
liefert den Fehler
Exception in thread "main" java.lang.ClassFormatError: Extra bytes at the end of class file Tph4
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at UseTph4.main(UseTph4.java:4)
branch targetBytecode
commit
239698c8d6
Fehler ist nicht gelöst
FEIM extends FEIK fehlt in m
siehe unten:
javac UseTph4.java
UseTph4.java:3: Fehler: Kein Zugriff auf Tph4
System.out.println(new Tph4().m2("s"));
^
Ungültige Klassendatei: ./Tph4.class
Nicht deklarierte Typvariable: FEIM
Entfernen Sie die Datei, oder stellen Sie sicher, dass sie im richtigen Unterverzeichnis des Classpath vorhanden ist.
1 Fehler
pl@MacBook-Air% javap Tph4.class
public class Tph4 {
public Tph4();
public <FEIL, FEIK> FEIK m(FEIL, FEIM);
public FEIX m2(FEIX);
}
Es sollte jetzt funktionieren. Vorausgesetzt der Test testet richtig ;)