vendor tsgo
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package fourslash_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/microsoft/typescript-go/internal/fourslash"
|
||||
"github.com/microsoft/typescript-go/internal/testutil"
|
||||
)
|
||||
|
||||
// Tests for signature help with binding pattern parameters.
|
||||
// This covers the crash fix for binding patterns and various combinations
|
||||
// as requested in the issue.
|
||||
func TestSignatureHelpBindingPattern(t *testing.T) {
|
||||
t.Parallel()
|
||||
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
|
||||
const content = `
|
||||
/**
|
||||
* @param options An empty object binding pattern.
|
||||
*/
|
||||
function emptyObj({}) {}
|
||||
emptyObj(/*emptyObj*/)
|
||||
|
||||
/**
|
||||
* @param items An empty array binding pattern.
|
||||
*/
|
||||
function emptyArr([]) {}
|
||||
emptyArr(/*emptyArr*/)
|
||||
|
||||
/**
|
||||
* @param param An object with a and b properties.
|
||||
*/
|
||||
function nonEmptyObj({a, b}: {a: number, b: string}) {}
|
||||
nonEmptyObj(/*nonEmptyObj*/)
|
||||
|
||||
/**
|
||||
* @param tuple A tuple with two elements.
|
||||
*/
|
||||
function nonEmptyArr([x, y]: [number, string]) {}
|
||||
nonEmptyArr(/*nonEmptyArr*/)
|
||||
|
||||
/**
|
||||
* @param first The first number parameter.
|
||||
* @param second An object with a and b properties.
|
||||
*/
|
||||
function idLeading(first: number, {a, b}: {a: number, b: string}) {}
|
||||
idLeading(123/*idLeading*/, { a: 1, b: 2 }/*bindingTrailing*/)
|
||||
|
||||
/**
|
||||
* @param first An object with a and b properties.
|
||||
* @param last The last number parameter.
|
||||
*/
|
||||
function bindingLeading({a, b}: {a: number, b: string}, last: number) {}
|
||||
bindingLeading(/*bindingLeading*/{ a: 1, b: 2 }, 123 /*idTrailing*/)
|
||||
|
||||
/**
|
||||
* @param param1 {Object} The first parameter
|
||||
* @param param1.a {number} Comment a
|
||||
* @param param1.b {string} Comment b
|
||||
* @param param2 {Object} The second parameter
|
||||
* @param param2.c {boolean} Comment c
|
||||
* @param param2.d {unknown} Comment d
|
||||
*/
|
||||
function multipleBindings({ a, b }, { c, d }) {}
|
||||
multipleBindings({ a: 0, b: "" }/*firstObjParam*/, { c: true, d: "" }/*secondObjParam*/)
|
||||
`
|
||||
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
|
||||
defer done()
|
||||
f.VerifyBaselineSignatureHelp(t)
|
||||
}
|
||||
Reference in New Issue
Block a user