Skip to content

Commit

Permalink
remove BaseRegExpArray interface
Browse files Browse the repository at this point in the history
  • Loading branch information
DetachHead committed Sep 13, 2022
1 parent 31386c5 commit e446294
Show file tree
Hide file tree
Showing 25 changed files with 61 additions and 60 deletions.
19 changes: 10 additions & 9 deletions src/lib/es5.d.ts
Expand Up @@ -916,14 +916,7 @@ interface DateConstructor {

declare var Date: DateConstructor;

interface BaseRegExpArray extends Array<string> {
/**
* The first match. This will always be present because `null` will be returned if there are no matches.
*/
0: string;
}

interface RegExpMatchArray extends BaseRegExpArray {
interface RegExpMatchArray extends Array<string> {
/**
* The index of the search at which the result was found.
*/
Expand All @@ -932,9 +925,13 @@ interface RegExpMatchArray extends BaseRegExpArray {
* A copy of the search string.
*/
input?: string;
/**
* The first match. This will always be present because `null` will be returned if there are no matches.
*/
0: string;
}

interface RegExpExecArray extends BaseRegExpArray {
interface RegExpExecArray extends Array<string> {
/**
* The index of the search at which the result was found.
*/
Expand All @@ -943,6 +940,10 @@ interface RegExpExecArray extends BaseRegExpArray {
* A copy of the search string.
*/
input: string;
/**
* The first match. This will always be present because `null` will be returned if there are no matches.
*/
0: string;
}

interface RegExp {
Expand Down
Expand Up @@ -41,7 +41,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(
a1(...array2); // Error parameter type is (number|string)[]
~~~~~~
!!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'?
!!! related TS2728 /.ts/lib.es5.d.ts:1493:13: 'Array' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1494:13: 'Array' is declared here.
a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]]
~~~~~~~~
!!! error TS2322: Type 'string' is not assignable to type '[[any]]'.
Expand Down
4 changes: 2 additions & 2 deletions tests/baselines/reference/destructuringTuple.errors.txt
Expand Up @@ -33,8 +33,8 @@ tests/cases/compiler/destructuringTuple.ts(11,60): error TS2769: No overload mat
!!! error TS2769: Overload 2 of 3, '(callbackfn: (previousValue: [], currentValue: number, currentIndex: number, array: number[]) => [], initialValue: []): []', gave the following error.
!!! error TS2769: Type 'never[]' is not assignable to type '[]'.
!!! error TS2769: Target allows only 0 element(s) but source may have more.
!!! related TS6502 /.ts/lib.es5.d.ts:1458:24: The expected type comes from the return type of this signature.
!!! related TS6502 /.ts/lib.es5.d.ts:1464:27: The expected type comes from the return type of this signature.
!!! related TS6502 /.ts/lib.es5.d.ts:1459:24: The expected type comes from the return type of this signature.
!!! related TS6502 /.ts/lib.es5.d.ts:1465:27: The expected type comes from the return type of this signature.
~~
!!! error TS2769: No overload matches this call.
!!! error TS2769: Overload 1 of 2, '(...items: ConcatArray<never>[]): never[]', gave the following error.
Expand Down
Expand Up @@ -11,7 +11,7 @@ tests/cases/conformance/types/members/duplicateNumericIndexers.ts(25,5): error T
tests/cases/conformance/types/members/duplicateNumericIndexers.ts(29,5): error TS2374: Duplicate index signature for type 'number'.
tests/cases/conformance/types/members/duplicateNumericIndexers.ts(30,5): error TS2374: Duplicate index signature for type 'number'.
lib.es5.d.ts(517,5): error TS2374: Duplicate index signature for type 'number'.
lib.es5.d.ts(1479,5): error TS2374: Duplicate index signature for type 'number'.
lib.es5.d.ts(1480,5): error TS2374: Duplicate index signature for type 'number'.


==== tests/cases/conformance/types/members/duplicateNumericIndexers.ts (12 errors) ====
Expand Down
Expand Up @@ -10,7 +10,7 @@ if (match !== null) {
const foo: string = match[0]
>foo : Symbol(foo, Decl(firstMatchRegExpMatchArray.ts, 3, 9))
>match : Symbol(match, Decl(firstMatchRegExpMatchArray.ts, 0, 5))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))

const bar: string = match[1]
>bar : Symbol(bar, Decl(firstMatchRegExpMatchArray.ts, 4, 9))
Expand Down
Expand Up @@ -7,5 +7,5 @@ tests/cases/compiler/mappedTypeWithAsClauseAndLateBoundProperty.ts(3,1): error T
tgt2 = src2; // Should error
~~~~
!!! error TS2741: Property 'length' is missing in type '{ [x: number]: number; toString: () => string; toLocaleString: () => string; pop: () => number; push: (...items: number[]) => number; concat: { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: <U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { <S extends number>(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator<number>; values: () => IterableIterator<number>; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: <U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[]; flat: <A, D extends number = 1>(this: A, depth?: D) => FlatArray<A, D>[]; [iterator]: () => IterableIterator<number>; [unscopables]: () => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }' but required in type 'number[]'.
!!! related TS2728 /.ts/lib.es5.d.ts:1302:5: 'length' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1303:5: 'length' is declared here.

Expand Up @@ -24,7 +24,7 @@ tests/cases/conformance/types/any/narrowExceptionVariableInCatchClause.ts(16,17)
err.massage; // ERROR: Property 'massage' does not exist on type 'Error'
~~~~~~~
!!! error TS2551: Property 'massage' does not exist on type 'Error'. Did you mean 'message'?
!!! related TS2728 /.ts/lib.es5.d.ts:1052:5: 'message' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1053:5: 'message' is declared here.
}

else {
Expand Down
Expand Up @@ -22,7 +22,7 @@ tests/cases/conformance/types/any/narrowFromAnyWithInstanceof.ts(22,7): error TS
x.mesage;
~~~~~~
!!! error TS2551: Property 'mesage' does not exist on type 'Error'. Did you mean 'message'?
!!! related TS2728 /.ts/lib.es5.d.ts:1052:5: 'message' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1053:5: 'message' is declared here.
}

if (x instanceof Date) {
Expand Down
Expand Up @@ -41,7 +41,7 @@ tests/cases/conformance/types/any/narrowFromAnyWithTypePredicate.ts(33,7): error
x.mesage;
~~~~~~
!!! error TS2551: Property 'mesage' does not exist on type 'Error'. Did you mean 'message'?
!!! related TS2728 /.ts/lib.es5.d.ts:1052:5: 'message' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1053:5: 'message' is declared here.
}

if (isDate(x)) {
Expand Down
Expand Up @@ -7,11 +7,11 @@ const m = ''.match('');
m! && m[0];
>m : Symbol(m, Decl(narrowingWithNonNullExpression.ts, 0, 5))
>m : Symbol(m, Decl(narrowingWithNonNullExpression.ts, 0, 5))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))

m?.[0]! && m[0];
>m : Symbol(m, Decl(narrowingWithNonNullExpression.ts, 0, 5))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))
>m : Symbol(m, Decl(narrowingWithNonNullExpression.ts, 0, 5))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))

Expand Up @@ -7,6 +7,6 @@ tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpre
/notregexp/a.foo();
~~~~~~~~~
!!! error TS2552: Cannot find name 'notregexp'. Did you mean 'RegExp'?
!!! related TS2728 /.ts/lib.es5.d.ts:1048:13: 'RegExp' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1049:13: 'RegExp' is declared here.
~
!!! error TS2304: Cannot find name 'a'.
Expand Up @@ -6,6 +6,6 @@ tests/cases/conformance/parser/ecmascript5/RegularExpressions/parserRegularExpre
(1) /notregexp/a.foo();
~~~~~~~~~
!!! error TS2552: Cannot find name 'notregexp'. Did you mean 'RegExp'?
!!! related TS2728 /.ts/lib.es5.d.ts:1048:13: 'RegExp' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1049:13: 'RegExp' is declared here.
~
!!! error TS2304: Cannot find name 'a'.
4 changes: 2 additions & 2 deletions tests/baselines/reference/parserS7.2_A1.5_T2.errors.txt
Expand Up @@ -19,7 +19,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.2_A1.5_T2.ts(20,3): error TS
$ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x));
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}

//CHECK#2
Expand All @@ -28,7 +28,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.2_A1.5_T2.ts(20,3): error TS
$ERROR('#2:  var x = 1 ; x === 1. Actual: ' + (x));
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}


Expand Down
2 changes: 1 addition & 1 deletion tests/baselines/reference/parserS7.3_A1.1_T2.errors.txt
Expand Up @@ -21,7 +21,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.3_A1.1_T2.ts(17,3): error TS
$ERROR('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x));
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}


20 changes: 10 additions & 10 deletions tests/baselines/reference/parserS7.6_A4.2_T1.errors.txt
Expand Up @@ -50,70 +50,70 @@ tests/cases/conformance/parser/ecmascript5/parserS7.6_A4.2_T1.ts(142,3): error T
$ERROR('#А');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0411 = 1;
if (Б !== 1) {
$ERROR('#Б');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0412 = 1;
if (В !== 1) {
$ERROR('#В');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0413 = 1;
if (Г !== 1) {
$ERROR('#Г');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0414 = 1;
if (Д !== 1) {
$ERROR('#Д');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0415 = 1;
if (Е !== 1) {
$ERROR('#Е');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0416 = 1;
if (Ж !== 1) {
$ERROR('#Ж');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0417 = 1;
if (З !== 1) {
$ERROR('#З');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0418 = 1;
if (И !== 1) {
$ERROR('#И');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u0419 = 1;
if (Й !== 1) {
$ERROR('#Й');
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
var \u041A = 1;
if (К !== 1) {
Expand Down
4 changes: 2 additions & 2 deletions tests/baselines/reference/parserUnicode1.errors.txt
Expand Up @@ -11,13 +11,13 @@ tests/cases/conformance/parser/ecmascript5/parserUnicode1.ts(10,5): error TS2552
$ERROR('#6.1: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.
}
}
catch (e) {
$ERROR('#6.2: var \\u0078x = 1; xx === 6. Actual: ' + (xx));
~~~~~~
!!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'?
!!! related TS2728 /.ts/lib.es5.d.ts:1062:13: 'Error' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1063:13: 'Error' is declared here.

}
6 changes: 3 additions & 3 deletions tests/baselines/reference/parserharness.symbols
Expand Up @@ -3809,7 +3809,7 @@ module Harness {
>path.match : Symbol(String.match, Decl(lib.es5.d.ts, --, --))
>path : Symbol(path, Decl(parserharness.ts, 1285, 36))
>match : Symbol(String.match, Decl(lib.es5.d.ts, --, --))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))

var code = readFile(path);
>code : Symbol(code, Decl(parserharness.ts, 1288, 15))
Expand Down Expand Up @@ -3947,7 +3947,7 @@ module Harness {
>lastUnit : Symbol(lastUnit, Decl(parserharness.ts, 1326, 15))
>name : Symbol(TestCaseParser.TestUnitData.name, Decl(parserharness.ts, 1422, 28))
>match : Symbol(String.match, Decl(lib.es5.d.ts, --, --))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))

var dependencies = units.slice(0, units.length - 1);
>dependencies : Symbol(dependencies, Decl(parserharness.ts, 1329, 15))
Expand Down Expand Up @@ -5700,7 +5700,7 @@ module Harness {
>path.match : Symbol(String.match, Decl(lib.es5.d.ts, --, --))
>path : Symbol(path, Decl(parserharness.ts, 1869, 38))
>match : Symbol(String.match, Decl(lib.es5.d.ts, --, --))
>0 : Symbol(BaseRegExpArray[0], Decl(lib.es5.d.ts, --, --))
>0 : Symbol(RegExpMatchArray[0], Decl(lib.es5.d.ts, --, --))
>callback : Symbol(callback, Decl(parserharness.ts, 1869, 51))
}

Expand Down
2 changes: 1 addition & 1 deletion tests/baselines/reference/promisePermutations.errors.txt
Expand Up @@ -447,7 +447,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2769: No overload m
!!! error TS2769: The last overload gave the following error.
!!! error TS2769: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
!!! error TS2769: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1538:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1539:5: 'catch' is declared here.
!!! related TS2771 tests/cases/compiler/promisePermutations.ts:5:5: The last overload is declared here.
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok

Expand Down
2 changes: 1 addition & 1 deletion tests/baselines/reference/promisePermutations2.errors.txt
Expand Up @@ -351,7 +351,7 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of
~~~~~~~~~
!!! error TS2345: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
!!! error TS2345: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1538:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1539:5: 'catch' is declared here.
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok

var r11: IPromise<number>;
Expand Down

0 comments on commit e446294

Please sign in to comment.