@@ -469,7 +469,7 @@ namespace ts.refactor.extractSymbol {
469
469
* depending on what's in the extracted body.
470
470
*/
471
471
function collectEnclosingScopes ( range : TargetRange ) : Scope [ ] | undefined {
472
- let current : Node = isReadonlyArray ( range . range ) ? firstOrUndefined ( range . range ) : range . range ;
472
+ let current : Node = isReadonlyArray ( range . range ) ? first ( range . range ) : range . range ;
473
473
if ( range . facts & RangeFacts . UsesThis ) {
474
474
// if range uses this as keyword or as type inside the class then it can only be extracted to a method of the containing class
475
475
const containingClass = getContainingClass ( current ) ;
@@ -746,7 +746,7 @@ namespace ts.refactor.extractSymbol {
746
746
}
747
747
748
748
const changeTracker = textChanges . ChangeTracker . fromContext ( context ) ;
749
- const minInsertionPos = ( isReadonlyArray ( range . range ) ? lastOrUndefined ( range . range ) : range . range ) . end ;
749
+ const minInsertionPos = ( isReadonlyArray ( range . range ) ? last ( range . range ) : range . range ) . end ;
750
750
const nodeToInsertBefore = getNodeToInsertFunctionBefore ( minInsertionPos , scope ) ;
751
751
if ( nodeToInsertBefore ) {
752
752
changeTracker . insertNodeBefore ( context . file , nodeToInsertBefore , newFunction , { suffix : context . newLineCharacter + context . newLineCharacter } ) ;
@@ -830,7 +830,7 @@ namespace ts.refactor.extractSymbol {
830
830
}
831
831
832
832
const edits = changeTracker . getChanges ( ) ;
833
- const renameRange = isReadonlyArray ( range . range ) ? range . range [ 0 ] : range . range ;
833
+ const renameRange = isReadonlyArray ( range . range ) ? first ( range . range ) : range . range ;
834
834
835
835
const renameFilename = renameRange . getSourceFile ( ) . fileName ;
836
836
const renameLocation = getRenameLocation ( edits , renameFilename , functionNameText , /*isDeclaredBeforeUse*/ false ) ;
@@ -1226,7 +1226,7 @@ namespace ts.refactor.extractSymbol {
1226
1226
*/
1227
1227
function getEnclosingTextRange ( targetRange : TargetRange , sourceFile : SourceFile ) : TextRange {
1228
1228
return isReadonlyArray ( targetRange . range )
1229
- ? { pos : targetRange . range [ 0 ] . getStart ( sourceFile ) , end : targetRange . range [ targetRange . range . length - 1 ] . getEnd ( ) }
1229
+ ? { pos : first ( targetRange . range ) . getStart ( sourceFile ) , end : last ( targetRange . range ) . getEnd ( ) }
1230
1230
: targetRange . range ;
1231
1231
}
1232
1232
@@ -1272,7 +1272,7 @@ namespace ts.refactor.extractSymbol {
1272
1272
1273
1273
const expressionDiagnostic =
1274
1274
isReadonlyArray ( targetRange . range ) && ! ( targetRange . range . length === 1 && isExpressionStatement ( targetRange . range [ 0 ] ) )
1275
- ? ( ( start , end ) => createFileDiagnostic ( sourceFile , start , end - start , Messages . ExpressionExpected ) ) ( firstOrUndefined ( targetRange . range ) . getStart ( ) , lastOrUndefined ( targetRange . range ) . end )
1275
+ ? ( ( start , end ) => createFileDiagnostic ( sourceFile , start , end - start , Messages . ExpressionExpected ) ) ( first ( targetRange . range ) . getStart ( ) , last ( targetRange . range ) . end )
1276
1276
: undefined ;
1277
1277
1278
1278
// initialize results
@@ -1299,7 +1299,7 @@ namespace ts.refactor.extractSymbol {
1299
1299
const target = isReadonlyArray ( targetRange . range ) ? createBlock ( < Statement [ ] > targetRange . range ) : targetRange . range ;
1300
1300
const containingLexicalScopeOfExtraction = isBlockScope ( scopes [ 0 ] , scopes [ 0 ] . parent ) ? scopes [ 0 ] : getEnclosingBlockScopeContainer ( scopes [ 0 ] ) ;
1301
1301
1302
- const unmodifiedNode = isReadonlyArray ( targetRange . range ) ? targetRange . range [ 0 ] : targetRange . range ;
1302
+ const unmodifiedNode = isReadonlyArray ( targetRange . range ) ? first ( targetRange . range ) : targetRange . range ;
1303
1303
const inGenericContext = isInGenericContext ( unmodifiedNode ) ;
1304
1304
1305
1305
collectUsages ( target ) ;
0 commit comments