Add tests for JS-inferred rest parameters
This commit is contained in:
parent
4e927bdbd4
commit
f5f2d24372
20
tests/cases/compiler/argumentsObjectCreatesRestForJs.ts
Normal file
20
tests/cases/compiler/argumentsObjectCreatesRestForJs.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
// @checkJs: true
|
||||
// @allowJs: true
|
||||
// @Filename: main.js
|
||||
// @noemit: true
|
||||
function allRest() { arguments; }
|
||||
allRest();
|
||||
allRest(1, 2, 3);
|
||||
function someRest(x, y) { arguments; }
|
||||
someRest(); // x and y are still optional because they are in a JS file
|
||||
someRest(1, 2, 3);
|
||||
|
||||
/**
|
||||
* @param {number} x - a thing
|
||||
*/
|
||||
function jsdocced(x) { arguments; }
|
||||
jsdocced(1);
|
||||
|
||||
function dontDoubleRest(x, ...y) { arguments; }
|
||||
dontDoubleRest(1, 2, 3);
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// @Filename: foo.js
|
||||
// @noEmit: true
|
||||
// @allowJs: true
|
||||
// Test #16139
|
||||
function Foo() {
|
||||
arguments;
|
||||
return new Foo();
|
||||
}
|
|
@ -4,14 +4,25 @@
|
|||
// @allowJs: true
|
||||
|
||||
// @Filename: main.js
|
||||
////function fnTest() { arguments; }
|
||||
////fnTest(/*1*/);
|
||||
////fnTest(1, 2, 3);
|
||||
////function allOptional() { arguments; }
|
||||
////allOptional(/*1*/);
|
||||
////allOptional(1, 2, 3);
|
||||
////function someOptional(x, y) { arguments; }
|
||||
////someOptional(/*2*/);
|
||||
////someOptional(1, 2, 3);
|
||||
////someOptional(); // no error here; x and y are optional in JS
|
||||
|
||||
goTo.marker('1');
|
||||
verify.signatureHelpCountIs(1);
|
||||
verify.currentSignatureParameterCountIs(1);
|
||||
verify.currentSignatureHelpIs('fnTest(...args: any[]): void');
|
||||
verify.currentSignatureHelpIs('allOptional(...args: any[]): void');
|
||||
verify.currentParameterHelpArgumentNameIs('args');
|
||||
verify.currentParameterSpanIs("...args: any[]");
|
||||
verify.numberOfErrorsInCurrentFile(0);
|
||||
|
||||
goTo.marker('2');
|
||||
verify.signatureHelpCountIs(1);
|
||||
verify.currentSignatureParameterCountIs(3);
|
||||
verify.currentSignatureHelpIs('someOptional(x: any, y: any, ...args: any[]): void');
|
||||
verify.currentParameterHelpArgumentNameIs('x');
|
||||
verify.currentParameterSpanIs("x: any");
|
||||
verify.numberOfErrorsInCurrentFile(0);
|
||||
|
|
Loading…
Reference in a new issue