TypeScript/tests/cases/fourslash/jsdocDeprecated_suggestion1.ts
Wenlu Wang 57e2fe0462
Improve deprecated suggestion node position (#39702)
* Improve deprecated suggestion node position

* fix typo

* Simplify code

* merge helper function
2020-08-10 17:37:11 -07:00

295 lines
6.9 KiB
TypeScript

///<reference path="fourslash.ts" />
// @experimentalDecorators: true
// @Filename: a.ts
//// export namespace foo {
//// /** @deprecated */
//// export function faff () { }
//// [|faff|]()
//// }
//// const [|a|] = foo.[|faff|]()
//// foo[[|"faff"|]]
//// const { [|faff|] } = foo
//// [|faff|]()
//// /** @deprecated */
//// export function bar () {
//// foo?.[|faff|]()
//// }
//// foo?.[[|"faff"|]]?.()
//// [|bar|]();
//// /** @deprecated */
//// export interface Foo {
//// /** @deprecated */
//// zzz: number
//// }
//// /** @deprecated */
//// export type QW = [|Foo|][[|"zzz"|]]
//// export type WQ = [|QW|]
//// class C {
//// /** @deprecated */
//// constructor() {
//// }
//// /** @deprecated */
//// m() { }
//// }
//// /** @deprecated */
//// class D {
//// constructor() {
//// }
//// }
//// var c = new [|C|]()
//// c.[|m|]()
//// c.[|m|]
//// new [|D|]()
//// C
//// [|D|]
// @Filename: j.tsx
//// type Props = { someProp?: any }
//// declare var props: Props
//// /** @deprecated */
//// function Compi(_props: Props) {
//// return <div></div>
//// }
//// [|Compi|];
//// <[|Compi|] />;
//// <[|Compi|] {...props}><div></div></[|Compi|]>;
//// /** @deprecated */
//// function ttf(_x: unknown) {
//// }
//// [|ttf|]``
//// [|ttf|]
//// /** @deprecated */
//// function dec(_c: unknown) { }
//// [|dec|]
//// @[|dec|]
//// class K { }
// @Filename: b.ts
//// // imports and aliases
//// import * as f from './a';
//// import { [|bar|], [|QW|] } from './a';
//// f.[|bar|]();
//// f.foo.[|faff|]();
//// [|bar|]();
//// type Z = [|QW|];
//// type A = f.[|Foo|];
//// type B = f.[|QW|];
//// type C = f.WQ;
//// type [|O|] = Z | A | B | C;
goTo.file('a.ts')
const ranges = test.ranges();
verify.getSuggestionDiagnostics([
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[0]
},
{
"code": 6133,
"message": "'a' is declared but its value is never read.",
"reportsUnnecessary": true,
"range": ranges[1]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[2]
},
{
"code": 6385,
"message": "'faff' is deprecated",
"reportsDeprecated": true,
"range": ranges[3]
},
{
"code": 6385,
"message": "'faff' is deprecated",
"reportsDeprecated": true,
"range": ranges[4]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[5]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[6]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[7]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[8]
},
{
"code": 6385,
"message": "'Foo' is deprecated",
"reportsDeprecated": true,
"range": ranges[9]
},
{
"code": 6385,
"message": "'zzz' is deprecated",
"reportsDeprecated": true,
"range": ranges[10]
},
{
"code": 6385,
"message": "'QW' is deprecated",
"reportsDeprecated": true,
"range": ranges[11]
},
{
"code": 6385,
"message": "'(): C' is deprecated",
"reportsDeprecated": true,
"range": ranges[12]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[13]
},
{
"code": 6385,
"message": "'m' is deprecated",
"reportsDeprecated": true,
"range": ranges[14]
},
{
"code": 6385,
"message": "'D' is deprecated",
"reportsDeprecated": true,
"range": ranges[15]
},
{
"code": 6385,
"message": "'D' is deprecated",
"reportsDeprecated": true,
"range": ranges[16]
},
]);
goTo.file('j.tsx')
verify.getSuggestionDiagnostics([
{
"code": 6385,
"message": "'Compi' is deprecated",
"reportsDeprecated": true,
"range": ranges[17]
},
{
"code": 6385,
"message": "'(_props: Props): any' is deprecated",
"reportsDeprecated": true,
"range": ranges[18]
},
{
"code": 6385,
"message": "'(_props: Props): any' is deprecated",
"reportsDeprecated": true,
"range": ranges[19]
},
{
"code": 6385,
"message": "'Compi' is deprecated",
"reportsDeprecated": true,
"range": ranges[20]
},
{
"code": 6385,
"message": "'(_x: unknown): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[21]
},
{
"code": 6385,
"message": "'ttf' is deprecated",
"reportsDeprecated": true,
"range": ranges[22]
},
{
"code": 6385,
"message": "'dec' is deprecated",
"reportsDeprecated": true,
"range": ranges[23]
},
{
"code": 6385,
"message": "'(_c: unknown): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[24]
},
]);
goTo.file('b.ts')
verify.getSuggestionDiagnostics([
{
"code": 6385,
"message": "'bar' is deprecated",
"reportsDeprecated": true,
"range": ranges[25]
},
{
"code": 6385,
"message": "'QW' is deprecated",
"reportsDeprecated": true,
"range": ranges[26]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[27]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[28]
},
{
"code": 6385,
"message": "'(): void' is deprecated",
"reportsDeprecated": true,
"range": ranges[29]
},
{
"code": 6385,
"message": "'QW' is deprecated",
"reportsDeprecated": true,
"range": ranges[30]
},
{
"code": 6385,
"message": "'Foo' is deprecated",
"reportsDeprecated": true,
"range": ranges[31]
},
{
"code": 6385,
"message": "'QW' is deprecated",
"reportsDeprecated": true,
"range": ranges[32]
},
{
"code": 6196,
"message": "'O' is declared but never used.",
"reportsUnnecessary": true,
"range": ranges[33]
}
])