Files
kjol/tools/tsgo/internal/fourslash/tests/gen/formattingFatArrowFunctions_test.go
2026-07-09 16:50:43 -04:00

310 lines
17 KiB
Go

// Code generated by convertFourslash; DO NOT EDIT.
// To modify this test, run "npm run makemanual formattingFatArrowFunctions"
package fourslash_test
import (
"testing"
"github.com/microsoft/typescript-go/internal/fourslash"
"github.com/microsoft/typescript-go/internal/testutil"
)
func TestFormattingFatArrowFunctions(t *testing.T) {
fourslash.SkipIfFailing(t)
t.Parallel()
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `// valid
( ) => 1 ;/*1*/
( arg ) => 2 ;/*2*/
arg => 2 ;/*3*/
arg=>2 ;/*3a*/
( arg = 1 ) => 3 ;/*4*/
( arg ? ) => 4 ;/*5*/
( arg : number ) => 5 ;/*6*/
( arg : number = 0 ) => 6 ;/*7*/
( arg ? : number ) => 7 ;/*8*/
( ... arg : number [ ] ) => 8 ;/*9*/
( arg1 , arg2 ) => 12 ;/*10*/
( arg1 = 1 , arg2 =3 ) => 13 ;/*11*/
( arg1 ? , arg2 ? ) => 14 ;/*12*/
( arg1 : number , arg2 : number ) => 15 ;/*13*/
( arg1 : number = 0 , arg2 : number = 1 ) => 16 ;/*14*/
( arg1 ? : number , arg2 ? : number ) => 17 ;/*15*/
( arg1 , ... arg2 : number [ ] ) => 18 ;/*16*/
( arg1 , arg2 ? : number ) => 19 ;/*17*/
// in paren
( ( ) => 21 ) ;/*18*/
( ( arg ) => 22 ) ;/*19*/
( ( arg = 1 ) => 23 ) ;/*20*/
( ( arg ? ) => 24 ) ;/*21*/
( ( arg : number ) => 25 ) ;/*22*/
( ( arg : number = 0 ) => 26 ) ;/*23*/
( ( arg ? : number ) => 27 ) ;/*24*/
( ( ... arg : number [ ] ) => 28 ) ;/*25*/
// in multiple paren
( ( ( ( ( arg ) => { return 32 ; } ) ) ) ) ;/*26*/
// in ternary exression
false ? ( ) => 41 : null ;/*27*/
false ? ( arg ) => 42 : null ;/*28*/
false ? ( arg = 1 ) => 43 : null ;/*29*/
false ? ( arg ? ) => 44 : null ;/*30*/
false ? ( arg : number ) => 45 : null ;/*31*/
false ? ( arg ? : number ) => 46 : null ;/*32*/
false ? ( arg ? : number = 0 ) => 47 : null ;/*33*/
false ? ( ... arg : number [ ] ) => 48 : null ;/*34*/
// in ternary exression within paren
false ? ( ( ) => 51 ) : null ;/*35*/
false ? ( ( arg ) => 52 ) : null ;/*36*/
false ? ( ( arg = 1 ) => 53 ) : null ;/*37*/
false ? ( ( arg ? ) => 54 ) : null ;/*38*/
false ? ( ( arg : number ) => 55 ) : null ;/*39*/
false ? ( ( arg ? : number ) => 56 ) : null ;/*40*/
false ? ( ( arg ? : number = 0 ) => 57 ) : null ;/*41*/
false ? ( ( ... arg : number [ ] ) => 58 ) : null ;/*42*/
// ternary exression's else clause
false ? null : ( ) => 61 ;/*43*/
false ? null : ( arg ) => 62 ;/*44*/
false ? null : ( arg = 1 ) => 63 ;/*45*/
false ? null : ( arg ? ) => 64 ;/*46*/
false ? null : ( arg : number ) => 65 ;/*47*/
false ? null : ( arg ? : number ) => 66 ;/*48*/
false ? null : ( arg ? : number = 0 ) => 67 ;/*49*/
false ? null : ( ... arg : number [ ] ) => 68 ;/*50*/
// nested ternary expressions
(( a ? ) => { return a ; }) ? ( b ? ) => { return b ; } : ( c ? ) => { return c ; } ;/*51*/
//multiple levels
(( a ? ) => { return a ; }) ? ( b ) => ( c ) => 81 : ( c ) => ( d ) => 82 ;/*52*/
// In Expressions
( ( arg ) => 90 ) instanceof Function ;/*53*/
( ( arg = 1 ) => 91 ) instanceof Function ;/*54*/
( ( arg ? ) => 92 ) instanceof Function ;/*55*/
( ( arg : number ) => 93 ) instanceof Function ;/*56*/
( ( arg : number = 1 ) => 94 ) instanceof Function ;/*57*/
( ( arg ? : number ) => 95 ) instanceof Function ;/*58*/
( ( ... arg : number [ ] ) => 96 ) instanceof Function ;/*59*/
'' + (( arg ) => 100) ;/*60*/
( ( arg ) => 0 ) + '' + (( arg ) => 101) ;/*61*/
( ( arg = 1 ) => 0 ) + '' + (( arg = 2 ) => 102) ;/*62*/
( ( arg ? ) => 0 ) + '' + (( arg ? ) => 103) ;/*63*/
( ( arg : number ) => 0 ) + '' + (( arg : number ) => 104) ;/*64*/
( ( arg : number = 1 ) => 0 ) + '' + (( arg : number = 2 ) => 105) ;/*65*/
( ( arg ? : number ) => 0 ) + '' + (( arg ? : number ) => 106) ;/*66*/
( ( ... arg : number [ ] ) => 0 ) + '' + (( ... arg : number [ ] ) => 107) ;/*67*/
( ( arg1 , arg2 ? ) => 0 ) + '' + (( arg1 , arg2 ? ) => 108) ;/*68*/
( ( arg1 , ... arg2 : number [ ] ) => 0 ) + '' + (( arg1 , ... arg2 : number [ ] ) => 108) ;/*69*/
// Function Parameters
/*70*/function foo ( ... arg : any [ ] ) { }
/*71*/foo (
/*72*/ ( a ) => 110 ,
/*73*/ ( ( a ) => 111 ) ,
/*74*/ ( a ) => {
return /*75*/112 ;
/*76*/ } ,
/*77*/ ( a ? ) => 113 ,
/*78*/ ( a , b ? ) => 114 ,
/*79*/ ( a : number ) => 115 ,
/*80*/ ( a : number = 0 ) => 116 ,
/*81*/ ( a = 0 ) => 117 ,
/*82*/ ( a : number = 0 ) => 118 ,
/*83*/ ( a ? , b ? : number ) => 118 ,
/*84*/ ( ... a : number [ ] ) => 119 ,
/*85*/ ( a , b = 0 , ... c : number [ ] ) => 120 ,
/*86*/ ( a ) => ( b ) => ( c ) => 121 ,
/*87*/ false ? ( a ) => 0 : ( b ) => 122
/*88*/) ;`
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
defer done()
f.FormatDocument(t, "")
f.GoToMarker(t, "1")
f.VerifyCurrentLineContent(t, `() => 1;`)
f.GoToMarker(t, "2")
f.VerifyCurrentLineContent(t, `(arg) => 2;`)
f.GoToMarker(t, "3")
f.VerifyCurrentLineContent(t, `arg => 2;`)
f.GoToMarker(t, "3a")
f.VerifyCurrentLineContent(t, `arg => 2;`)
f.GoToMarker(t, "4")
f.VerifyCurrentLineContent(t, `(arg = 1) => 3;`)
f.GoToMarker(t, "5")
f.VerifyCurrentLineContent(t, `(arg?) => 4;`)
f.GoToMarker(t, "6")
f.VerifyCurrentLineContent(t, `(arg: number) => 5;`)
f.GoToMarker(t, "7")
f.VerifyCurrentLineContent(t, `(arg: number = 0) => 6;`)
f.GoToMarker(t, "8")
f.VerifyCurrentLineContent(t, `(arg?: number) => 7;`)
f.GoToMarker(t, "9")
f.VerifyCurrentLineContent(t, `(...arg: number[]) => 8;`)
f.GoToMarker(t, "10")
f.VerifyCurrentLineContent(t, `(arg1, arg2) => 12;`)
f.GoToMarker(t, "11")
f.VerifyCurrentLineContent(t, `(arg1 = 1, arg2 = 3) => 13;`)
f.GoToMarker(t, "12")
f.VerifyCurrentLineContent(t, `(arg1?, arg2?) => 14;`)
f.GoToMarker(t, "13")
f.VerifyCurrentLineContent(t, `(arg1: number, arg2: number) => 15;`)
f.GoToMarker(t, "14")
f.VerifyCurrentLineContent(t, `(arg1: number = 0, arg2: number = 1) => 16;`)
f.GoToMarker(t, "15")
f.VerifyCurrentLineContent(t, `(arg1?: number, arg2?: number) => 17;`)
f.GoToMarker(t, "16")
f.VerifyCurrentLineContent(t, `(arg1, ...arg2: number[]) => 18;`)
f.GoToMarker(t, "17")
f.VerifyCurrentLineContent(t, `(arg1, arg2?: number) => 19;`)
f.GoToMarker(t, "18")
f.VerifyCurrentLineContent(t, `(() => 21);`)
f.GoToMarker(t, "19")
f.VerifyCurrentLineContent(t, `((arg) => 22);`)
f.GoToMarker(t, "20")
f.VerifyCurrentLineContent(t, `((arg = 1) => 23);`)
f.GoToMarker(t, "21")
f.VerifyCurrentLineContent(t, `((arg?) => 24);`)
f.GoToMarker(t, "22")
f.VerifyCurrentLineContent(t, `((arg: number) => 25);`)
f.GoToMarker(t, "23")
f.VerifyCurrentLineContent(t, `((arg: number = 0) => 26);`)
f.GoToMarker(t, "24")
f.VerifyCurrentLineContent(t, `((arg?: number) => 27);`)
f.GoToMarker(t, "25")
f.VerifyCurrentLineContent(t, `((...arg: number[]) => 28);`)
f.GoToMarker(t, "26")
f.VerifyCurrentLineContent(t, `(((((arg) => { return 32; }))));`)
f.GoToMarker(t, "27")
f.VerifyCurrentLineContent(t, `false ? () => 41 : null;`)
f.GoToMarker(t, "28")
f.VerifyCurrentLineContent(t, `false ? (arg) => 42 : null;`)
f.GoToMarker(t, "29")
f.VerifyCurrentLineContent(t, `false ? (arg = 1) => 43 : null;`)
f.GoToMarker(t, "30")
f.VerifyCurrentLineContent(t, `false ? (arg?) => 44 : null;`)
f.GoToMarker(t, "31")
f.VerifyCurrentLineContent(t, `false ? (arg: number) => 45 : null;`)
f.GoToMarker(t, "32")
f.VerifyCurrentLineContent(t, `false ? (arg?: number) => 46 : null;`)
f.GoToMarker(t, "33")
f.VerifyCurrentLineContent(t, `false ? (arg?: number = 0) => 47 : null;`)
f.GoToMarker(t, "34")
f.VerifyCurrentLineContent(t, `false ? (...arg: number[]) => 48 : null;`)
f.GoToMarker(t, "35")
f.VerifyCurrentLineContent(t, `false ? (() => 51) : null;`)
f.GoToMarker(t, "36")
f.VerifyCurrentLineContent(t, `false ? ((arg) => 52) : null;`)
f.GoToMarker(t, "37")
f.VerifyCurrentLineContent(t, `false ? ((arg = 1) => 53) : null;`)
f.GoToMarker(t, "38")
f.VerifyCurrentLineContent(t, `false ? ((arg?) => 54) : null;`)
f.GoToMarker(t, "39")
f.VerifyCurrentLineContent(t, `false ? ((arg: number) => 55) : null;`)
f.GoToMarker(t, "40")
f.VerifyCurrentLineContent(t, `false ? ((arg?: number) => 56) : null;`)
f.GoToMarker(t, "41")
f.VerifyCurrentLineContent(t, `false ? ((arg?: number = 0) => 57) : null;`)
f.GoToMarker(t, "42")
f.VerifyCurrentLineContent(t, `false ? ((...arg: number[]) => 58) : null;`)
f.GoToMarker(t, "43")
f.VerifyCurrentLineContent(t, `false ? null : () => 61;`)
f.GoToMarker(t, "44")
f.VerifyCurrentLineContent(t, `false ? null : (arg) => 62;`)
f.GoToMarker(t, "45")
f.VerifyCurrentLineContent(t, `false ? null : (arg = 1) => 63;`)
f.GoToMarker(t, "46")
f.VerifyCurrentLineContent(t, `false ? null : (arg?) => 64;`)
f.GoToMarker(t, "47")
f.VerifyCurrentLineContent(t, `false ? null : (arg: number) => 65;`)
f.GoToMarker(t, "48")
f.VerifyCurrentLineContent(t, `false ? null : (arg?: number) => 66;`)
f.GoToMarker(t, "49")
f.VerifyCurrentLineContent(t, `false ? null : (arg?: number = 0) => 67;`)
f.GoToMarker(t, "50")
f.VerifyCurrentLineContent(t, `false ? null : (...arg: number[]) => 68;`)
f.GoToMarker(t, "51")
f.VerifyCurrentLineContent(t, `((a?) => { return a; }) ? (b?) => { return b; } : (c?) => { return c; };`)
f.GoToMarker(t, "52")
f.VerifyCurrentLineContent(t, `((a?) => { return a; }) ? (b) => (c) => 81 : (c) => (d) => 82;`)
f.GoToMarker(t, "53")
f.VerifyCurrentLineContent(t, `((arg) => 90) instanceof Function;`)
f.GoToMarker(t, "54")
f.VerifyCurrentLineContent(t, `((arg = 1) => 91) instanceof Function;`)
f.GoToMarker(t, "55")
f.VerifyCurrentLineContent(t, `((arg?) => 92) instanceof Function;`)
f.GoToMarker(t, "56")
f.VerifyCurrentLineContent(t, `((arg: number) => 93) instanceof Function;`)
f.GoToMarker(t, "57")
f.VerifyCurrentLineContent(t, `((arg: number = 1) => 94) instanceof Function;`)
f.GoToMarker(t, "58")
f.VerifyCurrentLineContent(t, `((arg?: number) => 95) instanceof Function;`)
f.GoToMarker(t, "59")
f.VerifyCurrentLineContent(t, `((...arg: number[]) => 96) instanceof Function;`)
f.GoToMarker(t, "60")
f.VerifyCurrentLineContent(t, `'' + ((arg) => 100);`)
f.GoToMarker(t, "61")
f.VerifyCurrentLineContent(t, `((arg) => 0) + '' + ((arg) => 101);`)
f.GoToMarker(t, "62")
f.VerifyCurrentLineContent(t, `((arg = 1) => 0) + '' + ((arg = 2) => 102);`)
f.GoToMarker(t, "63")
f.VerifyCurrentLineContent(t, `((arg?) => 0) + '' + ((arg?) => 103);`)
f.GoToMarker(t, "64")
f.VerifyCurrentLineContent(t, `((arg: number) => 0) + '' + ((arg: number) => 104);`)
f.GoToMarker(t, "65")
f.VerifyCurrentLineContent(t, `((arg: number = 1) => 0) + '' + ((arg: number = 2) => 105);`)
f.GoToMarker(t, "66")
f.VerifyCurrentLineContent(t, `((arg?: number) => 0) + '' + ((arg?: number) => 106);`)
f.GoToMarker(t, "67")
f.VerifyCurrentLineContent(t, `((...arg: number[]) => 0) + '' + ((...arg: number[]) => 107);`)
f.GoToMarker(t, "68")
f.VerifyCurrentLineContent(t, `((arg1, arg2?) => 0) + '' + ((arg1, arg2?) => 108);`)
f.GoToMarker(t, "69")
f.VerifyCurrentLineContent(t, `((arg1, ...arg2: number[]) => 0) + '' + ((arg1, ...arg2: number[]) => 108);`)
f.GoToMarker(t, "70")
f.VerifyCurrentLineContent(t, `function foo(...arg: any[]) { }`)
f.GoToMarker(t, "71")
f.VerifyCurrentLineContent(t, `foo(`)
f.GoToMarker(t, "72")
f.VerifyCurrentLineContent(t, ` (a) => 110,`)
f.GoToMarker(t, "73")
f.VerifyCurrentLineContent(t, ` ((a) => 111),`)
f.GoToMarker(t, "74")
f.VerifyCurrentLineContent(t, ` (a) => {`)
f.GoToMarker(t, "75")
f.VerifyCurrentLineContent(t, ` return 112;`)
f.GoToMarker(t, "76")
f.VerifyCurrentLineContent(t, ` },`)
f.GoToMarker(t, "77")
f.VerifyCurrentLineContent(t, ` (a?) => 113,`)
f.GoToMarker(t, "78")
f.VerifyCurrentLineContent(t, ` (a, b?) => 114,`)
f.GoToMarker(t, "79")
f.VerifyCurrentLineContent(t, ` (a: number) => 115,`)
f.GoToMarker(t, "80")
f.VerifyCurrentLineContent(t, ` (a: number = 0) => 116,`)
f.GoToMarker(t, "81")
f.VerifyCurrentLineContent(t, ` (a = 0) => 117,`)
f.GoToMarker(t, "82")
f.VerifyCurrentLineContent(t, ` (a: number = 0) => 118,`)
f.GoToMarker(t, "83")
f.VerifyCurrentLineContent(t, ` (a?, b?: number) => 118,`)
f.GoToMarker(t, "84")
f.VerifyCurrentLineContent(t, ` (...a: number[]) => 119,`)
f.GoToMarker(t, "85")
f.VerifyCurrentLineContent(t, ` (a, b = 0, ...c: number[]) => 120,`)
f.GoToMarker(t, "86")
f.VerifyCurrentLineContent(t, ` (a) => (b) => (c) => 121,`)
f.GoToMarker(t, "87")
f.VerifyCurrentLineContent(t, ` false ? (a) => 0 : (b) => 122`)
}