MethodSignature doesn't have 'arguments' (#28625)

Fixes: #28622
This commit is contained in:
Klaus Meinhardt 2018-11-20 22:01:34 +01:00 committed by Nathan Shively-Sanders
parent 5172d8f55b
commit 94d7e30393
6 changed files with 92 additions and 1 deletions

View file

@ -1420,7 +1420,6 @@ namespace ts {
}
break;
case SyntaxKind.MethodDeclaration:
case SyntaxKind.MethodSignature:
case SyntaxKind.Constructor:
case SyntaxKind.GetAccessor:
case SyntaxKind.SetAccessor:

View file

@ -0,0 +1,29 @@
tests/cases/compiler/arguments.ts(6,25): error TS2304: Cannot find name 'arguments'.
tests/cases/compiler/arguments.ts(7,23): error TS2304: Cannot find name 'arguments'.
tests/cases/compiler/arguments.ts(8,19): error TS2304: Cannot find name 'arguments'.
tests/cases/compiler/arguments.ts(9,23): error TS2304: Cannot find name 'arguments'.
tests/cases/compiler/arguments.ts(10,34): error TS2304: Cannot find name 'arguments'.
==== tests/cases/compiler/arguments.ts (5 errors) ====
function f() {
var x=arguments[12];
}
interface I {
method(args: typeof arguments): void;
~~~~~~~~~
!!! error TS2304: Cannot find name 'arguments'.
fn: (args: typeof arguments) => void;
~~~~~~~~~
!!! error TS2304: Cannot find name 'arguments'.
(args: typeof arguments): void;
~~~~~~~~~
!!! error TS2304: Cannot find name 'arguments'.
new (args: typeof arguments): void;
~~~~~~~~~
!!! error TS2304: Cannot find name 'arguments'.
construct: new (args: typeof arguments) => void;
~~~~~~~~~
!!! error TS2304: Cannot find name 'arguments'.
}

View file

@ -1,6 +1,14 @@
//// [arguments.ts]
function f() {
var x=arguments[12];
}
interface I {
method(args: typeof arguments): void;
fn: (args: typeof arguments) => void;
(args: typeof arguments): void;
new (args: typeof arguments): void;
construct: new (args: typeof arguments) => void;
}
//// [arguments.js]

View file

@ -6,3 +6,25 @@ function f() {
>x : Symbol(x, Decl(arguments.ts, 1, 7))
>arguments : Symbol(arguments)
}
interface I {
>I : Symbol(I, Decl(arguments.ts, 2, 1))
method(args: typeof arguments): void;
>method : Symbol(I.method, Decl(arguments.ts, 4, 13))
>args : Symbol(args, Decl(arguments.ts, 5, 11))
fn: (args: typeof arguments) => void;
>fn : Symbol(I.fn, Decl(arguments.ts, 5, 41))
>args : Symbol(args, Decl(arguments.ts, 6, 9))
(args: typeof arguments): void;
>args : Symbol(args, Decl(arguments.ts, 7, 5))
new (args: typeof arguments): void;
>args : Symbol(args, Decl(arguments.ts, 8, 9))
construct: new (args: typeof arguments) => void;
>construct : Symbol(I.construct, Decl(arguments.ts, 8, 39))
>args : Symbol(args, Decl(arguments.ts, 9, 20))
}

View file

@ -8,3 +8,28 @@ function f() {
>arguments : IArguments
>12 : 12
}
interface I {
method(args: typeof arguments): void;
>method : (args: any) => void
>args : any
>arguments : any
fn: (args: typeof arguments) => void;
>fn : (args: any) => void
>args : any
>arguments : any
(args: typeof arguments): void;
>args : any
>arguments : any
new (args: typeof arguments): void;
>args : any
>arguments : any
construct: new (args: typeof arguments) => void;
>construct : new (args: any) => void
>args : any
>arguments : any
}

View file

@ -1,3 +1,11 @@
function f() {
var x=arguments[12];
}
interface I {
method(args: typeof arguments): void;
fn: (args: typeof arguments) => void;
(args: typeof arguments): void;
new (args: typeof arguments): void;
construct: new (args: typeof arguments) => void;
}