Konstruktoraufruf mit this(...) nicht implementiert #295

Closed
opened 2024-03-15 20:55:47 +00:00 by i21023 · 0 comments
Collaborator

Aktuell kann man aus einem Konstruktor keinen überladenen Konstruktor der selben Klasse mit this(...) aufrufen.

Beispiel:

import java.lang.Integer;

class Foo{
    Integer a;
    Integer b;
    Integer c;

    public Foo(a, b, c){
        this(a);
        this.b = b;
        this.c = c;
    }

    public Foo(a){
        this.a = a;
    }
}

Exception in thread "main" de.dhbwstuttgart.exceptions.TypeinferenceException: Methode this ist nicht vorhanden!
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPEStmt.visit(TYPEStmt.java:200)
        at de.dhbwstuttgart.syntaxtree.statement.MethodCall.accept(MethodCall.java:50)
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPEStmt.visit(TYPEStmt.java:99)
        at de.dhbwstuttgart.syntaxtree.statement.Block.accept(Block.java:25)
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsMethod(TYPE.java:84)
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsConstructor(TYPE.java:92)
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsClass(TYPE.java:47)
        at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraints(TYPE.java:34)
        at de.dhbwstuttgart.core.JavaTXCompiler.getConstraints(JavaTXCompiler.java:156)
        at de.dhbwstuttgart.core.JavaTXCompiler.typeInference(JavaTXCompiler.java:419)
        at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:717)
        at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:700)
        at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:710)
        at de.dhbwstuttgart.core.ConsoleInterface.main(ConsoleInterface.java:40)
Aktuell kann man aus einem Konstruktor keinen überladenen Konstruktor der selben Klasse mit this(...) aufrufen. **Beispiel:** ```java import java.lang.Integer; class Foo{ Integer a; Integer b; Integer c; public Foo(a, b, c){ this(a); this.b = b; this.c = c; } public Foo(a){ this.a = a; } } ``` ``` Exception in thread "main" de.dhbwstuttgart.exceptions.TypeinferenceException: Methode this ist nicht vorhanden! at de.dhbwstuttgart.typeinference.typeAlgo.TYPEStmt.visit(TYPEStmt.java:200) at de.dhbwstuttgart.syntaxtree.statement.MethodCall.accept(MethodCall.java:50) at de.dhbwstuttgart.typeinference.typeAlgo.TYPEStmt.visit(TYPEStmt.java:99) at de.dhbwstuttgart.syntaxtree.statement.Block.accept(Block.java:25) at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsMethod(TYPE.java:84) at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsConstructor(TYPE.java:92) at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraintsClass(TYPE.java:47) at de.dhbwstuttgart.typeinference.typeAlgo.TYPE.getConstraints(TYPE.java:34) at de.dhbwstuttgart.core.JavaTXCompiler.getConstraints(JavaTXCompiler.java:156) at de.dhbwstuttgart.core.JavaTXCompiler.typeInference(JavaTXCompiler.java:419) at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:717) at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:700) at de.dhbwstuttgart.core.JavaTXCompiler.generateBytecode(JavaTXCompiler.java:710) at de.dhbwstuttgart.core.ConsoleInterface.main(ConsoleInterface.java:40) ```
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#295
No description provided.