prettier/tests/rec/test3.js

17 lines
457 B
JavaScript

type I<X> = () => I<I<X>>;
type J<X> = () => J<J<X>>;
function foo(x: I<number>): J<number> {
return x; // terminate despite expanding types, OK
// I<number> and J<number> both expand to () => () => ...
}
type Q<X> = { x: X; }
type P<X> = () => Q<P<X>>;
function bar(x: P<number>): () => P<number> {
return x; // terminate despite expanding types, error
// P<number> = () => { x: P<number> }
// () => P<number> = () => () => { x: P<number> }
}