2018-07-11 20:15:04 +02:00
|
|
|
/// <reference path="fourslash.ts" />
|
|
|
|
|
|
|
|
////const x = 0;
|
|
|
|
////type T = number;
|
|
|
|
////function f(x: number) {}
|
|
|
|
////function g<T>(x: T) {}
|
|
|
|
////class C<T> {}
|
|
|
|
|
|
|
|
////x + {| "valueOnly": true |}
|
|
|
|
////x < {| "valueOnly": true |}
|
|
|
|
////f < {| "valueOnly": true |}
|
2019-07-20 00:22:04 +02:00
|
|
|
////g < /*g*/
|
|
|
|
////const something: C</*something*/;
|
|
|
|
////const something2: C<C</*something2*/;
|
|
|
|
////new C</*C*/;
|
|
|
|
////new C<C</*CC*/;
|
2018-07-11 20:15:04 +02:00
|
|
|
////
|
|
|
|
////declare const callAndConstruct: { new<T>(): callAndConstruct<T>; <T>(): string; };
|
|
|
|
////interface callAndConstruct<T> {}
|
|
|
|
////new callAndConstruct<callAndConstruct</*callAndConstruct*/
|
|
|
|
|
|
|
|
for (const marker of test.markers()) {
|
2019-07-20 00:22:04 +02:00
|
|
|
if (marker.data && marker.data.valueOnly) {
|
2018-07-11 20:15:04 +02:00
|
|
|
verify.completions({ marker, includes: "x", excludes: "T" });
|
|
|
|
}
|
|
|
|
else {
|
2019-07-20 00:22:04 +02:00
|
|
|
verify.completions({ marker, includes: "T", excludes: "x" });
|
2018-07-11 20:15:04 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
verify.signatureHelp({
|
|
|
|
marker: "callAndConstruct",
|
|
|
|
text: "callAndConstruct<T>(): string",
|
|
|
|
parameterName: "T",
|
|
|
|
parameterSpan: "T",
|
|
|
|
parameterCount: 1,
|
|
|
|
argumentCount: 1,
|
|
|
|
});
|