TypeScript/tests/baselines/reference/recursiveComplicatedClasses.types
Wesley Wigham 7748694d60
Relate non-augmenting subtypes without resorting to structural comparison (#43624)
* Relate non-augmenting array subtypes without resorting to structural comparison

* Fix lint

* Generalize performance enhancement

* Cache results, feed through via getNormalizedType to remove error intermediates

* Use newly freed up object flags to limit member setting, fix crash with those object flags

* Move flags because there is no TypeFlags.Reference 🤦
2021-04-27 22:52:12 -07:00

51 lines
973 B
Plaintext

=== tests/cases/compiler/recursiveComplicatedClasses.ts ===
class Signature {
>Signature : Signature
public parameters: ParameterSymbol[] = null;
>parameters : ParameterSymbol[]
>null : null
}
function aEnclosesB(a: Symbol) {
>aEnclosesB : (a: Symbol) => boolean
>a : Symbol
return true;
>true : true
}
class Symbol {
>Symbol : Symbol
public bound: boolean;
>bound : boolean
public visible() {
>visible : () => boolean
var b: TypeSymbol;
>b : TypeSymbol
return aEnclosesB(b);
>aEnclosesB(b) : boolean
>aEnclosesB : (a: Symbol) => boolean
>b : TypeSymbol
}
}
class InferenceSymbol extends Symbol {
>InferenceSymbol : InferenceSymbol
>Symbol : Symbol
}
class ParameterSymbol extends InferenceSymbol {
>ParameterSymbol : ParameterSymbol
>InferenceSymbol : InferenceSymbol
}
class TypeSymbol extends InferenceSymbol {
>TypeSymbol : TypeSymbol
>InferenceSymbol : InferenceSymbol
}