Extracted from #14833
TypeScript Version: 2.2.1 / nightly (2.2.0-dev.201xxxxx)
Code
type Foo<T extends "true", B> = { "true": Foo<T, Foo<T, B>> }[T];
let f: Foo<"true", {}> = null!;
Expected behavior:
An error reporting cyclic dependency.
Actual behavior:
Throw RangeError: Maximum call stack size exceeded