Instanceof mit Variablenzuweisung #350

Open
opened 2024-10-25 11:43:24 +00:00 by RubenKraft · 3 comments
Collaborator

Bei InstanceOf ist es in Java möglich, eine direkte Zuweisung auf eine Variable zu vollziehen.
In JavaTX wurde dies im Syntaxbaum auch vorgesehen, jedoch ist die eigentliche Umsetzung nicht implementiert.

Folgender Code sollte mit der fertigen Umsetzung funktionieren:

    public test(b) {
        if (b instanceof String st) {
            return "String: " + st;
        }
        return null;
    }
Bei InstanceOf ist es in Java möglich, eine direkte Zuweisung auf eine Variable zu vollziehen. In JavaTX wurde dies im Syntaxbaum auch vorgesehen, jedoch ist die eigentliche Umsetzung nicht implementiert. Folgender Code sollte mit der fertigen Umsetzung funktionieren: ```java public test(b) { if (b instanceof String st) { return "String: " + st; } return null; } ```
Owner

Der Grund warum ich das noch nicht angegangen habe ist das sogenannte Flow-Scoping was Java eingeführt hat. Kurz gesagt entscheidet der Compiler ob in einem bestimmten Branch ein instanceof wahr sein muss.

if (!(b instanceof String st)) {
   ...
} else {
    // st ist hier definiert!
}

Das ganze kann natürlich beliebig komplex werden mit verschachtelten Bedingungen.

Der Grund warum ich das noch nicht angegangen habe ist das sogenannte Flow-Scoping was Java eingeführt hat. Kurz gesagt entscheidet der Compiler ob in einem bestimmten Branch ein instanceof wahr sein muss. ```java if (!(b instanceof String st)) { ... } else { // st ist hier definiert! } ``` Das ganze kann natürlich beliebig komplex werden mit verschachtelten Bedingungen.
Author
Collaborator

Aaaah, verstehe. Dann passt ja alles. Soll ich den Issue dann schließen wenn dus aufm Schirm hast oder einfach mal offen lassen?

Aaaah, verstehe. Dann passt ja alles. Soll ich den Issue dann schließen wenn dus aufm Schirm hast oder einfach mal offen lassen?
Owner

Würde es einfach offen lassen, ist ja tatsächlich nicht implementiert und die Issues sind ja auch ein bisschen Dokumentation.

Würde es einfach offen lassen, ist ja tatsächlich nicht implementiert und die Issues sind ja auch ein bisschen Dokumentation.
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#350
No description provided.