7748694d60
* 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 🤦
51 lines
973 B
Plaintext
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
|
|
}
|