2020-07-02 23:09:59 +02:00
|
|
|
///<reference path="fourslash.ts" />
|
|
|
|
|
|
|
|
//// // overloads
|
|
|
|
//// declare function foo(a: string): number;
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// declare function foo(): undefined;
|
|
|
|
//// declare function foo (a?: string): number | undefined;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// [|foo|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
//// foo('');
|
|
|
|
//// foo;
|
|
|
|
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// declare function bar(): number;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// [|bar|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
//// [|bar|];
|
|
|
|
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// declare function baz(): number;
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// declare function baz(): number | undefined;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// [|baz|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
//// [|baz|];
|
|
|
|
|
|
|
|
//// interface Foo {
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// (): void
|
|
|
|
//// (a: number): void
|
|
|
|
//// }
|
|
|
|
//// declare const f: Foo;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// [|f|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
//// f(1);
|
|
|
|
|
|
|
|
//// interface T {
|
|
|
|
//// createElement(): void
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// createElement(tag: 'xmp'): void;
|
|
|
|
//// }
|
|
|
|
//// declare const t: T;
|
|
|
|
//// t.createElement();
|
2020-08-11 02:37:11 +02:00
|
|
|
//// t.[|createElement|]('xmp');
|
2020-07-02 23:09:59 +02:00
|
|
|
|
|
|
|
//// declare class C {
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// constructor ();
|
|
|
|
//// constructor(v: string)
|
|
|
|
//// }
|
|
|
|
//// C;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// const c = new [|C|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
|
|
|
|
//// interface Ca {
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// (): void
|
|
|
|
//// new (): void
|
|
|
|
//// }
|
|
|
|
//// interface Cb {
|
|
|
|
//// (): void
|
|
|
|
//// /** @deprecated */
|
|
|
|
//// new (): string
|
|
|
|
//// }
|
|
|
|
//// declare const ca: Ca;
|
|
|
|
//// declare const cb: Cb;
|
|
|
|
//// ca;
|
|
|
|
//// cb;
|
2020-08-11 02:37:11 +02:00
|
|
|
//// [|ca|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
//// cb();
|
|
|
|
//// new ca();
|
2020-08-11 02:37:11 +02:00
|
|
|
//// new [|cb|]();
|
2020-07-02 23:09:59 +02:00
|
|
|
|
|
|
|
const ranges = test.ranges();
|
|
|
|
verify.getSuggestionDiagnostics([
|
|
|
|
{
|
|
|
|
message: "'(): undefined' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[0],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: "'(): number' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[1],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: "'bar' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[2],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: "'(): number' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[3],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: "'baz' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[4],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: "'(): void' is deprecated",
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[5],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: `'(tag: "xmp"): void' is deprecated`,
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[6],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: `'(): C' is deprecated`,
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[7],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: `'(): void' is deprecated`,
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[8],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
message: `'(): string' is deprecated`,
|
|
|
|
code: 6385,
|
|
|
|
range: ranges[9],
|
|
|
|
reportsDeprecated: true,
|
|
|
|
},
|
|
|
|
])
|