Bound fehlt bei generischem Typ #277

Open
opened 2023-01-17 15:12:18 +00:00 by dholle · 0 comments
Owner

Folgendes Beispiel:

import java.lang.String;
import java.lang.Integer;

class Generics4<B extends String> {
    <C extends Integer> C m1(C b){
	return b;
    }

    m2(x) {
        return m1(x);
    }
}

(unter resources/bytecode/javFiles)

Resultat der Typinferenz:

class Generics4<B> {

Generics4()({
    super(());
  })::TPH AC
  C m1(C b)({
    return (b)::C;
  })::TPH N

  TPH O m2(TPH P x)({
    return ((this)::TPH Q.m1((x)::TPH P))::TPH S;
  })::TPH U

  Generics4()({
    super(());
  })::TPH Y

}

[[(TPH BLP, TPH O), (TPH Q = Generics4<GTV B>), (TPH FWX = GTV B), (TPH P < TPH O), (TPH S, TPH O)]]

O müsste als Bound Integer bekommen sonst könnte die Methode m2 mit z.B String aufgerufen werden und m1 akzeptiert nur < Integer

Folgendes Beispiel: ``` import java.lang.String; import java.lang.Integer; class Generics4<B extends String> { <C extends Integer> C m1(C b){ return b; } m2(x) { return m1(x); } } ``` (unter resources/bytecode/javFiles) Resultat der Typinferenz: ``` class Generics4<B> { Generics4()({ super(()); })::TPH AC C m1(C b)({ return (b)::C; })::TPH N TPH O m2(TPH P x)({ return ((this)::TPH Q.m1((x)::TPH P))::TPH S; })::TPH U Generics4()({ super(()); })::TPH Y } [[(TPH BLP, TPH O), (TPH Q = Generics4<GTV B>), (TPH FWX = GTV B), (TPH P < TPH O), (TPH S, TPH O)]] ``` O müsste als Bound Integer bekommen sonst könnte die Methode m2 mit z.B String aufgerufen werden und m1 akzeptiert nur < Integer
dholle added the
generics
label 2024-03-04 14:25:57 +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#277
No description provided.