kittenipc/kitcom/internal/tsgo/fourslash/tests/gen/signatureHelpExpandedRestTuplesLocalLabels1_test.go
2025-10-15 10:12:44 +03:00

80 lines
2.5 KiB
Go

package fourslash_test
import (
"testing"
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/fourslash"
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/testutil"
)
func TestSignatureHelpExpandedRestTuplesLocalLabels1(t *testing.T) {
t.Parallel()
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `interface AppleInfo {
color: "green" | "red";
}
interface BananaInfo {
curvature: number;
}
type FruitAndInfo1 = ["apple", AppleInfo] | ["banana", BananaInfo];
function logFruitTuple1(...[fruit, info]: FruitAndInfo1) {}
logFruitTuple1(/*1*/);
function logFruitTuple2(...[, info]: FruitAndInfo1) {}
logFruitTuple2(/*2*/);
logFruitTuple2("apple", /*3*/);
function logFruitTuple3(...[fruit, ...rest]: FruitAndInfo1) {}
logFruitTuple3(/*4*/);
logFruitTuple3("apple", /*5*/);
function logFruitTuple4(...[fruit, ...[info]]: FruitAndInfo1) {}
logFruitTuple4(/*6*/);
logFruitTuple4("apple", /*7*/);
type FruitAndInfo2 = ["apple", ...AppleInfo[]] | ["banana", ...BananaInfo[]];
function logFruitTuple5(...[fruit, firstInfo]: FruitAndInfo2) {}
logFruitTuple5(/*8*/);
logFruitTuple5("apple", /*9*/);
function logFruitTuple6(...[fruit, ...fruitInfo]: FruitAndInfo2) {}
logFruitTuple6(/*10*/);
logFruitTuple6("apple", /*11*/);
type FruitAndInfo3 = ["apple", ...AppleInfo[], number] | ["banana", ...BananaInfo[], number];
function logFruitTuple7(...[fruit, fruitInfoOrNumber, secondFruitInfoOrNumber]: FruitAndInfo3) {}
logFruitTuple7(/*12*/);
logFruitTuple7("apple", /*13*/);
logFruitTuple7("apple", { color: "red" }, /*14*/);
function logFruitTuple8(...[fruit, , secondFruitInfoOrNumber]: FruitAndInfo3) {}
logFruitTuple8(/*15*/);
logFruitTuple8("apple", /*16*/);
logFruitTuple8("apple", { color: "red" }, /*17*/);
function logFruitTuple9(...[...[fruit, fruitInfoOrNumber, secondFruitInfoOrNumber]]: FruitAndInfo3) {}
logFruitTuple9(/*18*/);
logFruitTuple9("apple", /*19*/);
logFruitTuple9("apple", { color: "red" }, /*20*/);
function logFruitTuple10(...[fruit, {}, secondFruitInfoOrNumber]: FruitAndInfo3) {}
logFruitTuple10(/*21*/);
logFruitTuple10("apple", /*22*/);
logFruitTuple10("apple", { color: "red" }, /*23*/);
function logFruitTuple11(...{}: FruitAndInfo3) {}
logFruitTuple11(/*24*/);
logFruitTuple11("apple", /*25*/);
logFruitTuple11("apple", { color: "red" }, /*26*/);
function withPair(...[first, second]: [number, named: string]) {}
withPair(/*27*/);
withPair(101, /*28*/);`
f := fourslash.NewFourslash(t, nil /*capabilities*/, content)
f.VerifyBaselineSignatureHelp(t)
}