// 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`) }