package fourslash_test import ( "testing" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/fourslash" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/testutil" ) func TestThisPredicateFunctionQuickInfo02(t *testing.T) { t.Parallel() t.Skip() defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `interface Sundries { broken: boolean; } interface Supplies { spoiled: boolean; } interface Crate { contents: T; /*1*/isSundries(): this is Crate; /*2*/isSupplies(): this is Crate; /*3*/isPackedTight(): this is (this & {extraContents: T}); } const crate: Crate; if (crate.isPackedTight/*4*/()) { crate.; } if (crate.isSundries/*5*/()) { crate.contents.; if (crate.isPackedTight/*6*/()) { crate.; } } if (crate.isSupplies/*7*/()) { crate.contents.; if (crate.isPackedTight/*8*/()) { crate.; } }` f := fourslash.NewFourslash(t, nil /*capabilities*/, content) f.VerifyQuickInfoAt(t, "1", "(method) Crate.isSundries(): this is Crate", "") f.VerifyQuickInfoAt(t, "2", "(method) Crate.isSupplies(): this is Crate", "") f.VerifyQuickInfoAt(t, "3", "(method) Crate.isPackedTight(): this is (this & {\n extraContents: T;\n})", "") f.VerifyQuickInfoAt(t, "4", "(method) Crate.isPackedTight(): this is (Crate & {\n extraContents: any;\n})", "") f.VerifyQuickInfoAt(t, "5", "(method) Crate.isSundries(): this is Crate", "") f.VerifyQuickInfoAt(t, "6", "(method) Crate.isPackedTight(): this is (Crate & {\n extraContents: Sundries;\n})", "") f.VerifyQuickInfoAt(t, "7", "(method) Crate.isSupplies(): this is Crate", "") f.VerifyQuickInfoAt(t, "8", "(method) Crate.isPackedTight(): this is (Crate & {\n extraContents: Supplies;\n})", "") }