1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
=== tests/cases/compiler/parameterReferenceInInitializer1.ts ===
function fn<a>(y: Y, set: (y: Y, x: number) => void): a {
>fn : Symbol(fn, Decl(parameterReferenceInInitializer1.ts, 0, 0))
>a : Symbol(a, Decl(parameterReferenceInInitializer1.ts, 0, 12))
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 0, 15))
>Y : Symbol(Y, Decl(parameterReferenceInInitializer1.ts, 2, 1))
>set : Symbol(set, Decl(parameterReferenceInInitializer1.ts, 0, 20))
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 0, 27))
>Y : Symbol(Y, Decl(parameterReferenceInInitializer1.ts, 2, 1))
>x : Symbol(x, Decl(parameterReferenceInInitializer1.ts, 0, 32))
>a : Symbol(a, Decl(parameterReferenceInInitializer1.ts, 0, 12))
return undefined;
>undefined : Symbol(undefined)
}
interface Y { x: number }
>Y : Symbol(Y, Decl(parameterReferenceInInitializer1.ts, 2, 1))
>x : Symbol(Y.x, Decl(parameterReferenceInInitializer1.ts, 3, 13))
class C {
>C : Symbol(C, Decl(parameterReferenceInInitializer1.ts, 3, 25))
constructor(
y: Y,
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 6, 16))
>Y : Symbol(Y, Decl(parameterReferenceInInitializer1.ts, 2, 1))
public x = fn(y, (y, x) => y.x = x) // expected to work, but actually doesn't
>x : Symbol(C.x, Decl(parameterReferenceInInitializer1.ts, 7, 13))
>fn : Symbol(fn, Decl(parameterReferenceInInitializer1.ts, 0, 0))
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 6, 16))
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 8, 26))
>x : Symbol(x, Decl(parameterReferenceInInitializer1.ts, 8, 28))
>y.x : Symbol(Y.x, Decl(parameterReferenceInInitializer1.ts, 3, 13))
>y : Symbol(y, Decl(parameterReferenceInInitializer1.ts, 8, 26))
>x : Symbol(Y.x, Decl(parameterReferenceInInitializer1.ts, 3, 13))
>x : Symbol(x, Decl(parameterReferenceInInitializer1.ts, 8, 28))
) {
}
}
|