mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Merge pull request #3781 from asger-semmle/js/deprecate-type-member-lookup
Approved by erik-krogh
This commit is contained in:
@@ -98,3 +98,4 @@ The following low-precision queries are no longer run by default on LGTM (their
|
||||
- `ParameterNode.asExpr()` and `.getAstNode()` now gets the parameter's AST node, whereas previously it had no result.
|
||||
- `Expr.flow()` now has a more meaningful result for destructuring patterns. Previously this node was disconnected from the data flow graph. Now it represents the values being destructured by the pattern.
|
||||
* The global data-flow and taint-tracking libraries now model indirect parameter accesses through the `arguments` object in some cases, which may lead to additional results from some of the security queries, particularly "Prototype pollution in utility function".
|
||||
* The predicates `Type.getProperty()` and variants of `Type.getMethod()` have been deprecated due to lack of use-cases. Looking up a named property of a static type is no longer supported, favoring faster extraction times instead.
|
||||
|
||||
@@ -875,21 +875,23 @@ export class TypeTable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the properties of the given type, or `null` if the properties of this
|
||||
* type could not be computed.
|
||||
* Returns the properties to extract for the given type or `null` if nothing should be extracted.
|
||||
*
|
||||
* For performance reasons we only extract properties needed to recognize promise types at the QL
|
||||
* level.
|
||||
*/
|
||||
private tryGetProperties(type: ts.Type) {
|
||||
// Workaround for https://github.com/Microsoft/TypeScript/issues/30845
|
||||
// Should be safe to remove once that has been fixed.
|
||||
try {
|
||||
return type.getProperties();
|
||||
} catch (e) {
|
||||
return null;
|
||||
private getPropertiesToExtract(type: ts.Type) {
|
||||
if (this.getSelfType(type) === type) {
|
||||
let thenSymbol = this.typeChecker.getPropertyOfType(type, "then");
|
||||
if (thenSymbol != null) {
|
||||
return [thenSymbol];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private extractProperties(type: ts.Type, id: number) {
|
||||
let props = this.tryGetProperties(type);
|
||||
let props = this.getPropertiesToExtract(type);
|
||||
if (props == null) return;
|
||||
for (let symbol of props) {
|
||||
let propertyType = this.tryGetTypeOfSymbol(symbol);
|
||||
|
||||
@@ -1649,11 +1649,9 @@ class Type extends @type {
|
||||
Type getChild(int i) { type_child(result, this, i) }
|
||||
|
||||
/**
|
||||
* Gets the type of the given property of this type.
|
||||
*
|
||||
* Note that this does not account for properties implied by index signatures.
|
||||
* DEPRECATED. Property lookup on types is no longer supported.
|
||||
*/
|
||||
Type getProperty(string name) { type_property(this, name, result) }
|
||||
deprecated Type getProperty(string name) { none() }
|
||||
|
||||
/**
|
||||
* Gets the type of the string index signature on this type,
|
||||
@@ -1758,33 +1756,19 @@ class Type extends @type {
|
||||
int getNumConstructorSignature() { result = count(getAConstructorSignature()) }
|
||||
|
||||
/**
|
||||
* Gets the last signature of the method of the given name.
|
||||
*
|
||||
* For overloaded methods, this is the most general version of the its
|
||||
* signature, which covers all cases, but with less precision than the
|
||||
* overload signatures.
|
||||
*
|
||||
* Use `getAMethodOverload` to get any of its overload signatures.
|
||||
* DEPRECATED. Method lookup on types is no longer supported.
|
||||
*/
|
||||
FunctionCallSignatureType getMethod(string name) {
|
||||
result = getProperty(name).getLastFunctionSignature()
|
||||
}
|
||||
deprecated FunctionCallSignatureType getMethod(string name) { none() }
|
||||
|
||||
/**
|
||||
* Gets the `n`th overload signature of the given method.
|
||||
* DEPRECATED. Method lookup on types is no longer supported.
|
||||
*/
|
||||
FunctionCallSignatureType getMethodOverload(string name, int n) {
|
||||
result = getProperty(name).getFunctionSignature(n)
|
||||
}
|
||||
deprecated FunctionCallSignatureType getMethodOverload(string name, int n) { none() }
|
||||
|
||||
/**
|
||||
* Gets a signature of the method of the given name.
|
||||
*
|
||||
* Overloaded methods have multiple signatures.
|
||||
* DEPRECATED. Method lookup on types is no longer supported.
|
||||
*/
|
||||
FunctionCallSignatureType getAMethodOverload(string name) {
|
||||
result = getProperty(name).getAFunctionSignature()
|
||||
}
|
||||
deprecated FunctionCallSignatureType getAMethodOverload(string name) { none() }
|
||||
|
||||
/**
|
||||
* Repeatedly unfolds union and intersection types and gets any of the underlying types,
|
||||
@@ -2638,10 +2622,11 @@ private class PromiseTypeName extends TypeName {
|
||||
name.matches("%Deferred")
|
||||
) and
|
||||
// The `then` method should take a callback, taking an argument of type `T`.
|
||||
exists(TypeReference self | self = getType() |
|
||||
exists(TypeReference self, Type thenMethod | self = getType() |
|
||||
self.getNumTypeArgument() = 1 and
|
||||
self
|
||||
.getAMethodOverload("then")
|
||||
type_property(self, "then", thenMethod) and
|
||||
thenMethod
|
||||
.getAFunctionSignature()
|
||||
.getParameter(0)
|
||||
.unfold()
|
||||
.getAFunctionSignature()
|
||||
|
||||
@@ -1,20 +1,5 @@
|
||||
| (T \| ConcatArray<T>)[] | `T \| ConcatArray<T>` |
|
||||
| (number \| ConcatArray<number>)[] | `number \| ConcatArray<number>` |
|
||||
| (number[] \| ConcatArray<number[]>)[] | `number[] \| ConcatArray<number[]>` |
|
||||
| (string \| number \| ConcatArray<string \| number>)[] | `string \| number \| ConcatArray<string \| number>` |
|
||||
| (string \| number)[] | `string \| number` |
|
||||
| ConcatArray<T>[] | `ConcatArray<T>` |
|
||||
| ConcatArray<number>[] | `ConcatArray<number>` |
|
||||
| ConcatArray<number[]>[] | `ConcatArray<number[]>` |
|
||||
| ConcatArray<string \| number>[] | `ConcatArray<string \| number>` |
|
||||
| S[] | `S` |
|
||||
| T[] | `T` |
|
||||
| U[] | `U` |
|
||||
| [number, string] | `string \| number` |
|
||||
| any[] | `any` |
|
||||
| number[] | `number` |
|
||||
| number[][] | `number[]` |
|
||||
| readonly T[] | `T` |
|
||||
| readonly number[] | `number` |
|
||||
| readonly number[][] | `number[]` |
|
||||
| string[] | `string` |
|
||||
|
||||
@@ -1,22 +1,7 @@
|
||||
| (T \| ConcatArray<T>)[] | T \| ConcatArray<T> |
|
||||
| (number \| ConcatArray<number>)[] | number \| ConcatArray<number> |
|
||||
| (number[] \| ConcatArray<number[]>)[] | number[] \| ConcatArray<number[]> |
|
||||
| (string \| number \| ConcatArray<string \| number>)[] | string \| number \| ConcatArray<string \| number> |
|
||||
| (string \| number)[] | string \| number |
|
||||
| ConcatArray<T>[] | ConcatArray<T> |
|
||||
| ConcatArray<number>[] | ConcatArray<number> |
|
||||
| ConcatArray<number[]>[] | ConcatArray<number[]> |
|
||||
| ConcatArray<string \| number>[] | ConcatArray<string \| number> |
|
||||
| NumberIndexable | object |
|
||||
| S[] | S |
|
||||
| T[] | T |
|
||||
| U[] | U |
|
||||
| [number, string] | string \| number |
|
||||
| any[] | any |
|
||||
| number[] | number |
|
||||
| number[][] | number[] |
|
||||
| readonly T[] | T |
|
||||
| readonly number[] | number |
|
||||
| readonly number[][] | number[] |
|
||||
| string | string |
|
||||
| string[] | string |
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
| [number, string] | (string \| number)[] |
|
||||
|
||||
@@ -13,4 +13,3 @@
|
||||
| IMulti | IGenericBase |
|
||||
| IStringSub | IGenericBase |
|
||||
| ISub | IBase |
|
||||
| RegExpMatchArray | Array |
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
| CImplementsString | CImplementsString |
|
||||
| CStringSub | CStringSub |
|
||||
| CSub | CSub |
|
||||
| CollatorOptions | CollatorOptions |
|
||||
| IBase | IBase |
|
||||
| IEmpty | IEmpty |
|
||||
| IEmptySub | IEmptySub |
|
||||
@@ -16,6 +15,3 @@
|
||||
| IMulti | IMulti<T> |
|
||||
| IStringSub | IStringSub |
|
||||
| ISub | ISub |
|
||||
| NumberFormatOptions | NumberFormatOptions |
|
||||
| RegExp | RegExp |
|
||||
| RegExpMatchArray | RegExpMatchArray |
|
||||
|
||||
@@ -108,51 +108,24 @@ test_FunctionCallSig
|
||||
| tst.ts:63:3:63:23 | method2 ... ing[]); | (y: string[]): any |
|
||||
| tst.ts:64:3:64:21 | method3(y: string); | (y: string): any |
|
||||
test_getRestParameterType
|
||||
| (...items: (string \| ConcatArray<string>)[]): T[] | string \| ConcatArray<string> |
|
||||
| (...items: ConcatArray<string>[]): T[] | ConcatArray<string> |
|
||||
| (...items: string[]): number | string |
|
||||
| (...strings: string[]): string | string |
|
||||
| (...y: string[]): any | string |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | string |
|
||||
| (substring: string, ...args: any[]): string | any |
|
||||
| (x: number, ...y: string[]): any | string |
|
||||
| new (...y: string[]): any | string |
|
||||
| new (x: number, ...y: string[]): any | string |
|
||||
test_getRestParameterArray
|
||||
| (...items: (string \| ConcatArray<string>)[]): T[] | (string \| ConcatArray<string>)[] |
|
||||
| (...items: ConcatArray<string>[]): T[] | ConcatArray<string>[] |
|
||||
| (...items: string[]): number | string[] |
|
||||
| (...strings: string[]): string | string[] |
|
||||
| (...y: string[]): any | string[] |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | string[] |
|
||||
| (substring: string, ...args: any[]): string | any[] |
|
||||
| (x: number, ...y: string[]): any | string[] |
|
||||
| new (...y: string[]): any | string[] |
|
||||
| new (x: number, ...y: string[]): any | string[] |
|
||||
test_RestSig_getParameter
|
||||
| (...items: (string \| ConcatArray<string>)[]): T[] | 0 | items | string \| ConcatArray<string> |
|
||||
| (...items: ConcatArray<string>[]): T[] | 0 | items | ConcatArray<string> |
|
||||
| (...items: string[]): number | 0 | items | string |
|
||||
| (...strings: string[]): string | 0 | strings | string |
|
||||
| (...y: string[]): any | 0 | y | string |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | 0 | start | number |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | 1 | deleteCount | number |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | 2 | items | string |
|
||||
| (substring: string, ...args: any[]): string | 0 | substring | string |
|
||||
| (substring: string, ...args: any[]): string | 1 | args | any |
|
||||
| (x: number, ...y: string[]): any | 0 | x | number |
|
||||
| (x: number, ...y: string[]): any | 1 | y | string |
|
||||
| new (...y: string[]): any | 0 | y | string |
|
||||
| new (x: number, ...y: string[]): any | 0 | x | number |
|
||||
| new (x: number, ...y: string[]): any | 1 | y | string |
|
||||
test_RestSig_numRequiredParams
|
||||
| (...items: (string \| ConcatArray<string>)[]): T[] | 0 |
|
||||
| (...items: ConcatArray<string>[]): T[] | 0 |
|
||||
| (...items: string[]): number | 0 |
|
||||
| (...strings: string[]): string | 0 |
|
||||
| (...y: string[]): any | 0 |
|
||||
| (start: number, deleteCount: number, ...items: string[]): T[] | 2 |
|
||||
| (substring: string, ...args: any[]): string | 1 |
|
||||
| (x: number, ...y: string[]): any | 1 |
|
||||
| new (...y: string[]): any | 0 |
|
||||
| new (x: number, ...y: string[]): any | 1 |
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
| Box in library-tests/TypeScript/ExpansiveTypes/shared_non_expansive.ts | has no properties |
|
||||
| Box in library-tests/TypeScript/ExpansiveTypes/through_non_expansive.ts | has no properties |
|
||||
| C in library-tests/TypeScript/ExpansiveTypes/expansive_class.ts | has no properties |
|
||||
| Expand in library-tests/TypeScript/ExpansiveTypes/through_non_expansive.ts | has no properties |
|
||||
| ExpandUsingObjectLiteral in library-tests/TypeScript/ExpansiveTypes/expansive_object_literal.ts | has no properties |
|
||||
| Expansive in library-tests/TypeScript/ExpansiveTypes/leading_into_expansion.ts | has no properties |
|
||||
| Expansive in library-tests/TypeScript/ExpansiveTypes/simple.ts | has no properties |
|
||||
| ExpansiveA in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has no properties |
|
||||
| ExpansiveA in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has no properties |
|
||||
| ExpansiveB in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has no properties |
|
||||
| ExpansiveB in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has no properties |
|
||||
| ExpansiveByInference in library-tests/TypeScript/ExpansiveTypes/expansive_by_inference.ts | has no properties |
|
||||
| ExpansiveC in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has no properties |
|
||||
| ExpansiveC in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has no properties |
|
||||
| ExpansiveConstructSignature in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveD in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has no properties |
|
||||
| ExpansiveD in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has no properties |
|
||||
| ExpansiveFunctionType in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveMethod in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveParameter in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveSignature in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveSignatureTypeBound in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has no properties |
|
||||
| ExpansiveX in library-tests/TypeScript/ExpansiveTypes/used_from_expansion.ts | has no properties |
|
||||
@@ -1,11 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from TypeReference type
|
||||
where
|
||||
not exists(type.getProperty(_)) and
|
||||
(
|
||||
exists(type.getADefinition().(ClassOrInterface).getAField())
|
||||
or
|
||||
exists(type.getADefinition().(ClassOrInterface).getAMethod())
|
||||
)
|
||||
select type.getTypeName(), "has no properties"
|
||||
@@ -1,31 +0,0 @@
|
||||
| After in library-tests/TypeScript/ExpansiveTypes/leading_into_expansion.ts | has properties |
|
||||
| AfterX in library-tests/TypeScript/ExpansiveTypes/used_from_expansion.ts | has properties |
|
||||
| Array in global scope | has properties |
|
||||
| Before in library-tests/TypeScript/ExpansiveTypes/leading_into_expansion.ts | has properties |
|
||||
| BeforeX in library-tests/TypeScript/ExpansiveTypes/used_from_expansion.ts | has properties |
|
||||
| Box in library-tests/TypeScript/ExpansiveTypes/shared_non_expansive.ts | has properties |
|
||||
| Box in library-tests/TypeScript/ExpansiveTypes/through_non_expansive.ts | has properties |
|
||||
| C in library-tests/TypeScript/ExpansiveTypes/expansive_class.ts | has properties |
|
||||
| Expand in library-tests/TypeScript/ExpansiveTypes/through_non_expansive.ts | has properties |
|
||||
| ExpandUsingObjectLiteral in library-tests/TypeScript/ExpansiveTypes/expansive_object_literal.ts | has properties |
|
||||
| Expansive in library-tests/TypeScript/ExpansiveTypes/leading_into_expansion.ts | has properties |
|
||||
| Expansive in library-tests/TypeScript/ExpansiveTypes/simple.ts | has properties |
|
||||
| ExpansiveA in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has properties |
|
||||
| ExpansiveA in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has properties |
|
||||
| ExpansiveB in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has properties |
|
||||
| ExpansiveB in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has properties |
|
||||
| ExpansiveByInference in library-tests/TypeScript/ExpansiveTypes/expansive_by_inference.ts | has properties |
|
||||
| ExpansiveC in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has properties |
|
||||
| ExpansiveC in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has properties |
|
||||
| ExpansiveConstructSignature in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveD in library-tests/TypeScript/ExpansiveTypes/mutual.ts | has properties |
|
||||
| ExpansiveD in library-tests/TypeScript/ExpansiveTypes/mutual_multigraph.ts | has properties |
|
||||
| ExpansiveFunctionType in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveMethod in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveParameter in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveSignature in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveSignatureTypeBound in library-tests/TypeScript/ExpansiveTypes/expansive_signature.ts | has properties |
|
||||
| ExpansiveX in library-tests/TypeScript/ExpansiveTypes/used_from_expansion.ts | has properties |
|
||||
| Intl.CollatorOptions in global scope | has properties |
|
||||
| Intl.NumberFormatOptions in global scope | has properties |
|
||||
| NonExpansive in library-tests/TypeScript/ExpansiveTypes/shared_non_expansive.ts | has properties |
|
||||
@@ -1,5 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from TypeReference type
|
||||
where exists(type.getProperty(_))
|
||||
select type.getTypeName(), "has properties"
|
||||
@@ -0,0 +1,77 @@
|
||||
| After |
|
||||
| AfterX |
|
||||
| Before |
|
||||
| BeforeX |
|
||||
| Box<Expand<T[]>> |
|
||||
| Box<S> |
|
||||
| Box<S> |
|
||||
| Box<T[]> |
|
||||
| Box<number> |
|
||||
| C<T> |
|
||||
| C<T[]> |
|
||||
| Expand<T> |
|
||||
| Expand<T[]> |
|
||||
| ExpandUsingObjectLiteral<T> |
|
||||
| ExpandUsingObjectLiteral<T[]> |
|
||||
| Expansive<T> |
|
||||
| Expansive<T> |
|
||||
| Expansive<T[]> |
|
||||
| Expansive<T[]> |
|
||||
| Expansive<number> |
|
||||
| Expansive<string> |
|
||||
| ExpansiveA<S> |
|
||||
| ExpansiveA<S> |
|
||||
| ExpansiveA<T> |
|
||||
| ExpansiveA<T> |
|
||||
| ExpansiveB<S> |
|
||||
| ExpansiveB<S> |
|
||||
| ExpansiveB<T> |
|
||||
| ExpansiveB<T[]> |
|
||||
| ExpansiveB<T[]> |
|
||||
| ExpansiveB<number> |
|
||||
| ExpansiveByInference<T> |
|
||||
| ExpansiveByInference<T[]> |
|
||||
| ExpansiveC<T> |
|
||||
| ExpansiveC<T> |
|
||||
| ExpansiveC<T> |
|
||||
| ExpansiveC<T[]> |
|
||||
| ExpansiveC<T[]> |
|
||||
| ExpansiveC<number> |
|
||||
| ExpansiveConstructSignature<T> |
|
||||
| ExpansiveConstructSignature<T[]> |
|
||||
| ExpansiveD<T> |
|
||||
| ExpansiveD<T> |
|
||||
| ExpansiveD<T> |
|
||||
| ExpansiveD<T> |
|
||||
| ExpansiveFunctionType<T> |
|
||||
| ExpansiveFunctionType<T[]> |
|
||||
| ExpansiveMethod<T> |
|
||||
| ExpansiveMethod<T[]> |
|
||||
| ExpansiveParameter<T> |
|
||||
| ExpansiveParameter<T[]> |
|
||||
| ExpansiveSignature<T> |
|
||||
| ExpansiveSignature<T[]> |
|
||||
| ExpansiveSignatureTypeBound<T> |
|
||||
| ExpansiveSignatureTypeBound<T[]> |
|
||||
| ExpansiveX<T> |
|
||||
| ExpansiveX<T[]> |
|
||||
| NonExpansive<Box<number>> |
|
||||
| NonExpansive<T> |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
| T[] |
|
||||
@@ -0,0 +1,4 @@
|
||||
import javascript
|
||||
|
||||
from TypeReference type
|
||||
select type
|
||||
@@ -1,8 +1,4 @@
|
||||
| Intl.CollatorOptions | CollatorOptions |
|
||||
| Intl.NumberFormatOptions | NumberFormatOptions |
|
||||
| LegacyGlobals.LegacySubclass | LegacySubclass |
|
||||
| Modern.ModernClass | ModernClass |
|
||||
| ModernGlobals.ModernSubclass | ModernSubclass |
|
||||
| RegExp | RegExp |
|
||||
| RegExpMatchArray | RegExpMatchArray |
|
||||
| __Legacy.LegacyClass | LegacyClass |
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
| Augmentation | defined in augmentation.ts |
|
||||
| CollatorOptions | has no definition |
|
||||
| ExternalType1 | has no definition |
|
||||
| ExternalType2 | has no definition |
|
||||
| InternalType | defined in client_esmodule.ts |
|
||||
@@ -7,9 +6,6 @@
|
||||
| LegacySubclass | has no definition |
|
||||
| ModernClass | has no definition |
|
||||
| ModernSubclass | has no definition |
|
||||
| NumberFormatOptions | has no definition |
|
||||
| OtherClass | has no definition |
|
||||
| RegExp | has no definition |
|
||||
| RegExpMatchArray | has no definition |
|
||||
| UtilClass | has no definition |
|
||||
| UtilExtraClass | has no definition |
|
||||
|
||||
@@ -1,24 +1,16 @@
|
||||
| C<Bar> | 1 | bar.ts:10:10:10:24 | class C<Bar> {} |
|
||||
| C<Foo> | 1 | foo.ts:10:10:10:24 | class C<Foo> {} |
|
||||
| C<any> | 1 | bar.ts:10:10:10:24 | class C<Bar> {} |
|
||||
| C<any> | 1 | foo.ts:10:10:10:24 | class C<Foo> {} |
|
||||
| C<number> | 1 | bar.ts:10:10:10:24 | class C<Bar> {} |
|
||||
| C<number> | 1 | foo.ts:10:10:10:24 | class C<Foo> {} |
|
||||
| ExportedClass<Bar> | 1 | bar.ts:4:8:4:34 | class E ... Bar> {} |
|
||||
| ExportedClass<Foo> | 1 | foo.ts:4:8:4:34 | class E ... Foo> {} |
|
||||
| ExportedClass<any> | 1 | bar.ts:4:8:4:34 | class E ... Bar> {} |
|
||||
| ExportedClass<any> | 1 | foo.ts:4:8:4:34 | class E ... Foo> {} |
|
||||
| ExportedClass<number> | 1 | bar.ts:4:8:4:34 | class E ... Bar> {} |
|
||||
| ExportedClass<number> | 1 | foo.ts:4:8:4:34 | class E ... Foo> {} |
|
||||
| InnerC<Foo1> | 1 | foo.ts:13:3:13:23 | class I ... oo1> {} |
|
||||
| InnerC<Foo2> | 1 | foo.ts:18:3:18:23 | class I ... oo2> {} |
|
||||
| InnerC<any> | 1 | foo.ts:13:3:13:23 | class I ... oo1> {} |
|
||||
| InnerC<any> | 1 | foo.ts:18:3:18:23 | class I ... oo2> {} |
|
||||
| InnerC<number> | 1 | foo.ts:13:3:13:23 | class I ... oo1> {} |
|
||||
| InnerC<number> | 1 | foo.ts:18:3:18:23 | class I ... oo2> {} |
|
||||
| LocalClass<Bar> | 1 | bar.ts:3:1:3:24 | class L ... Bar> {} |
|
||||
| LocalClass<Foo> | 1 | foo.ts:3:1:3:24 | class L ... Foo> {} |
|
||||
| LocalClass<any> | 1 | bar.ts:3:1:3:24 | class L ... Bar> {} |
|
||||
| LocalClass<any> | 1 | foo.ts:3:1:3:24 | class L ... Foo> {} |
|
||||
| LocalClass<number> | 1 | bar.ts:3:1:3:24 | class L ... Bar> {} |
|
||||
| LocalClass<number> | 1 | foo.ts:3:1:3:24 | class L ... Foo> {} |
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
| Glob in global scope |
|
||||
| H in namespaces.ts:27 |
|
||||
| H.I in namespaces.ts:27 |
|
||||
| Intl in global scope |
|
||||
| N in library-tests/TypeScript/QualifiedNameResolution/export-specifiers.ts |
|
||||
| X in global scope |
|
||||
| X in library-tests/TypeScript/QualifiedNameResolution/namespaces.ts |
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
| Array in global scope |
|
||||
| Intl in global scope |
|
||||
| Intl.CollatorOptions in global scope |
|
||||
| Intl.NumberFormatOptions in global scope |
|
||||
| MK in unknown scope |
|
||||
| Mapped in library-tests/TypeScript/RegressionTests/EmptyName/test.ts |
|
||||
| RegExp in global scope |
|
||||
| RegExpMatchArray in global scope |
|
||||
| fn in library-tests/TypeScript/RegressionTests/EmptyName/test.ts |
|
||||
| library-tests/TypeScript/RegressionTests/EmptyName/test.ts |
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
| Bar.Foo in global scope | Bar in global scope |
|
||||
| Intl.CollatorOptions in global scope | Intl in global scope |
|
||||
| Intl.NumberFormatOptions in global scope | Intl in global scope |
|
||||
| fn in library-tests/TypeScript/RegressionTests/SemicolonInName/test.ts | library-tests/TypeScript/RegressionTests/SemicolonInName/test.ts |
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
| D | D |
|
||||
| E | E |
|
||||
| S | S |
|
||||
| U | U |
|
||||
|
||||
@@ -2,18 +2,6 @@
|
||||
| <E>(x: () => E): E | 1 | 0 | E | no bound |
|
||||
| <E>(x: E[] \| (() => E)): E | 1 | 0 | E | no bound |
|
||||
| <E>(x: E[]): E | 1 | 0 | E | no bound |
|
||||
| <S extends E>(callbackfn: (value: E, index: number, array: E[]) => va... | 1 | 0 | S | no bound |
|
||||
| <S extends T \| S>(callbackfn: (value: T \| S, index: number, array: (T... | 1 | 0 | S | no bound |
|
||||
| <S extends T>(callbackfn: (value: T, index: number, array: T[]) => va... | 1 | 0 | S | no bound |
|
||||
| <S extends any>(callbackfn: (value: any, index: number, array: any[])... | 1 | 0 | S | any |
|
||||
| <S extends any[]>(x: S, y: T[]): S | 1 | 0 | S | any[] |
|
||||
| <S>(x: S, y: S): S | 1 | 0 | S | no bound |
|
||||
| <S>(x: S, y: T): [S, T] | 1 | 0 | S | no bound |
|
||||
| <U>(callbackfn: (previousValue: U, currentValue: E, currentIndex: num... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (previousValue: U, currentValue: T \| S, currentIndex:... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: num... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (previousValue: U, currentValue: any, currentIndex: n... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (value: E, index: number, array: E[]) => U, thisArg?:... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (value: T \| S, index: number, array: (T \| S)[]) => U,... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?:... | 1 | 0 | U | no bound |
|
||||
| <U>(callbackfn: (value: any, index: number, array: any[]) => U, thisA... | 1 | 0 | U | no bound |
|
||||
|
||||
Reference in New Issue
Block a user