11import outdent from 'outdent' ;
2- import { getTester } from './utils/test.js' ;
2+ import { getTester , parsers } from './utils/test.js' ;
33
44const { test} = getTester ( import . meta) ;
55
@@ -43,6 +43,30 @@ test.snapshot({
4343 'function foo() {return arguments[arguments.length - 1]}' ,
4444 'class Foo {bar; baz() {return this.bar[this.bar.length - 1]}}' ,
4545 'class Foo {#bar; baz() {return this.#bar[this.#bar.length - 1]}}' ,
46+ {
47+ code : '(array as Foo[])[array.length - 1]' ,
48+ languageOptions : { parser : parsers . typescript } ,
49+ } ,
50+ {
51+ code : '(array as Foo[])[(array as Foo[]).length - 1]' ,
52+ languageOptions : { parser : parsers . typescript } ,
53+ } ,
54+ {
55+ code : '<Foo[]>array[array.length - 1]' ,
56+ languageOptions : { parser : parsers . typescript } ,
57+ } ,
58+ {
59+ code : '<Foo[]>array[(<Foo[]>array).length - 1]' ,
60+ languageOptions : { parser : parsers . typescript } ,
61+ } ,
62+ {
63+ code : 'array![array.length - 1]' ,
64+ languageOptions : { parser : parsers . typescript } ,
65+ } ,
66+ {
67+ code : 'array![array!.length - 1]' ,
68+ languageOptions : { parser : parsers . typescript } ,
69+ } ,
4670 ] ,
4771} ) ;
4872
@@ -67,6 +91,18 @@ test.snapshot({
6791 '(( string )).charAt(string.length - 1);' ,
6892 '(( string.charAt ))(string.length - 1);' ,
6993 '(( string.charAt(string.length - 1) ));' ,
94+ {
95+ code : '(string as string).charAt((string as string).length - 1);' ,
96+ languageOptions : { parser : parsers . typescript } ,
97+ } ,
98+ {
99+ code : '<string>string.charAt((<string>string).length - 1);' ,
100+ languageOptions : { parser : parsers . typescript } ,
101+ } ,
102+ {
103+ code : 'string!.charAt(string!.length - 1);' ,
104+ languageOptions : { parser : parsers . typescript } ,
105+ } ,
70106 ] ,
71107} ) ;
72108
@@ -112,6 +148,30 @@ test.snapshot({
112148 '(( array.slice(-1).pop ))();' ,
113149 '(( array.slice(-1).pop() ));' ,
114150 'array.slice(-1)[0].pop().shift().slice(-1)' ,
151+ {
152+ code : '(array as Foo[]).slice(-1)[0]' ,
153+ languageOptions : { parser : parsers . typescript } ,
154+ } ,
155+ {
156+ code : '(array as Foo[]).slice(-1).pop()' ,
157+ languageOptions : { parser : parsers . typescript } ,
158+ } ,
159+ {
160+ code : '<Foo[]>array.slice(-1)[0]' ,
161+ languageOptions : { parser : parsers . typescript } ,
162+ } ,
163+ {
164+ code : '<Foo[]>array.slice(-1).shift()' ,
165+ languageOptions : { parser : parsers . typescript } ,
166+ } ,
167+ {
168+ code : 'array!.slice(-1)[0]' ,
169+ languageOptions : { parser : parsers . typescript } ,
170+ } ,
171+ {
172+ code : 'array!.slice(-1).pop()' ,
173+ languageOptions : { parser : parsers . typescript } ,
174+ } ,
115175 ] ,
116176} ) ;
117177
0 commit comments