2
2
3
3
//// [declarationEmitBindingPatternsUnused.ts]
4
4
type Named = { name : string }
5
+
6
+ // Resons we can't remove aliases that are not used in the function signature:
7
+
8
+ // 1.Causes duplicate identifier if we remove alias
9
+ function duplicateIndetifiers ( { name : alias , name : alias2 } : Named ) { }
10
+ function duplicateIndetifiers2 ( name : string , { name : alias } : Named ) { }
11
+ function duplicateIndetifiers3 ( { name : alias } : Named , { name : alias2 } : Named ) { }
12
+
13
+ let value = "" ;
14
+ // 2.Can change in meaning for typeof value if we remove alias
15
+ function shadowedVariable ( { value : alias } : { value : string } ) : typeof value { return value }
16
+
5
17
function notReferenced ( { name : alias } : Named ) {
6
18
7
19
}
@@ -10,8 +22,6 @@ function notReferencedNestedAlias({ p: { name: alias } }: { p: Named }) {
10
22
function notReferencedArrayAlias ( [ a , b , { name : alias } ] : Named [ ] ) {
11
23
}
12
24
13
-
14
-
15
25
function referencedInCode ( { name : alias } : Named ) {
16
26
return alias ;
17
27
}
@@ -114,6 +124,14 @@ interface ReferencedInSignartureInterface {
114
124
}
115
125
116
126
//// [declarationEmitBindingPatternsUnused.js]
127
+ // Resons we can't remove aliases that are not used in the function signature:
128
+ // 1.Causes duplicate identifier if we remove alias
129
+ function duplicateIndetifiers ( { name : alias , name : alias2 } ) { }
130
+ function duplicateIndetifiers2 ( name , { name : alias } ) { }
131
+ function duplicateIndetifiers3 ( { name : alias } , { name : alias2 } ) { }
132
+ let value = "" ;
133
+ // 2.Can change in meaning for typeof value if we remove alias
134
+ function shadowedVariable ( { value : alias } ) { return value ; }
117
135
function notReferenced ( { name : alias } ) {
118
136
}
119
137
function notReferencedNestedAlias ( { p : { name : alias } } ) {
@@ -191,12 +209,19 @@ let referencedInSignartureParamTypeCtorType;
191
209
type Named = {
192
210
name : string ;
193
211
} ;
194
- declare function notReferenced ( { name } : Named ) : void ;
195
- declare function notReferencedNestedAlias ( { p : { name } } : {
212
+ declare function duplicateIndetifiers ( { name : alias , name : alias2 } : Named ) : void ;
213
+ declare function duplicateIndetifiers2 ( name : string , { name : alias } : Named ) : void ;
214
+ declare function duplicateIndetifiers3 ( { name : alias } : Named , { name : alias2 } : Named ) : void ;
215
+ declare let value : string ;
216
+ declare function shadowedVariable ( { value : alias } : {
217
+ value : string ;
218
+ } ) : typeof value ;
219
+ declare function notReferenced ( { name : alias } : Named ) : void ;
220
+ declare function notReferencedNestedAlias ( { p : { name : alias } } : {
196
221
p : Named ;
197
222
} ) : void ;
198
- declare function notReferencedArrayAlias ( [ a , b , { name } ] : Named [ ] ) : void ;
199
- declare function referencedInCode ( { name } : Named) : string ;
223
+ declare function notReferencedArrayAlias ( [ a , b , { name : alias } ] : Named [ ] ) : void ;
224
+ declare function referencedInCode ( { name: alias } : Named) : string ;
200
225
declare function referencedInSignarture ( { name : alias } : Named ) : typeof alias ;
201
226
declare function referencedInSignartureKeyword ( { function : alias } : {
202
227
function : string ;
@@ -210,14 +235,14 @@ declare function referencedNestedAlias({ p: { name: alias } }: {
210
235
} ) : typeof alias ;
211
236
declare function referencedArrayAlias ( [ a , b , { name : alias } ] : Named [ ] ) : typeof alias ;
212
237
declare class NotReferencedClass {
213
- constructor ( { name } : Named ) ;
214
- set x ( { name } : Named ) ;
215
- m ( { name } : Named ) : void ;
238
+ constructor ( { name : alias } : Named ) ;
239
+ set x ( { name : alias } : Named ) ;
240
+ m ( { name : alias } : Named ) : void ;
216
241
}
217
242
declare class ReferencedInCodeClas {
218
- constructor ( { name } : Named ) ;
219
- set x ( { name } : Named ) ;
220
- m ( { name } : Named ) : void ;
243
+ constructor ( { name : alias } : Named ) ;
244
+ set x ( { name : alias } : Named ) ;
245
+ m ( { name : alias } : Named ) : void ;
221
246
}
222
247
declare class ReferencedInSignartureClass {
223
248
constructor ( { name : alias } : Named , p : typeof alias ) ;
@@ -228,17 +253,17 @@ declare class ReferencedInSignartureClass {
228
253
mRerturnTypeNested ( { name : alias } : Named ) : NonNullable < typeof alias > ;
229
254
mParameter ( { name : alias } : Named , p : typeof alias ) : any ;
230
255
}
231
- declare let notReferencedFnType : ( { name } : Named ) = > void ;
256
+ declare let notReferencedFnType : ( { name : alias } : Named ) = > void ;
232
257
declare let referencedInSignartureReturnTypeFnType : ( { name : alias } : Named ) = > typeof alias ;
233
258
declare let referencedInSignartureParamTypeFnType : ( { name : alias } : Named , p : typeof alias ) = > void ;
234
- declare let notReferencedCtorType : new ( { name } : Named ) => void ;
259
+ declare let notReferencedCtorType : new ( { name : alias } : Named ) => void ;
235
260
declare let referencedInSignartureReturnTypeCtorType : new ( { name : alias } : Named ) => typeof alias ;
236
261
declare let referencedInSignartureParamTypeCtorType : new ( { name : alias } : Named , p : typeof alias ) => void ;
237
262
interface NotReferencedInterface {
238
- ( { name } : Named ) : void ;
239
- new ( { name } : Named ) : void ;
240
- set x ( { name } : Named ) ;
241
- m ( { name } : Named ) : any ;
263
+ ( { name : alias } : Named ) : void ;
264
+ new ( { name : alias } : Named ) : void ;
265
+ set x ( { name : alias } : Named ) ;
266
+ m ( { name : alias } : Named ) : any ;
242
267
}
243
268
interface ReferencedInSignartureInterface {
244
269
( { name : alias } : Named , p : typeof alias ) : void ;
0 commit comments