File tree Expand file tree Collapse file tree 3 files changed +11
-0
lines changed Expand file tree Collapse file tree 3 files changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -975,6 +975,8 @@ namespace ts {
975975 return getSpanOfTokenAtPosition ( sourceFile , node . pos ) ;
976976 }
977977
978+ Debug . assert ( ! isJSDoc ( errorNode ) ) ;
979+
978980 const isMissing = nodeIsMissing ( errorNode ) ;
979981 const pos = isMissing || isJsxText ( node )
980982 ? errorNode . pos
Original file line number Diff line number Diff line change @@ -116,6 +116,7 @@ namespace ts.refactor.extractSymbol {
116116 export const cannotExtractRange : DiagnosticMessage = createMessage ( "Cannot extract range." ) ;
117117 export const cannotExtractImport : DiagnosticMessage = createMessage ( "Cannot extract import statement." ) ;
118118 export const cannotExtractSuper : DiagnosticMessage = createMessage ( "Cannot extract super call." ) ;
119+ export const cannotExtractJSDoc : DiagnosticMessage = createMessage ( "Cannot extract JSDoc." ) ;
119120 export const cannotExtractEmpty : DiagnosticMessage = createMessage ( "Cannot extract empty range." ) ;
120121 export const expressionExpected : DiagnosticMessage = createMessage ( "expression expected." ) ;
121122 export const uselessConstantType : DiagnosticMessage = createMessage ( "No reason to extract constant of type." ) ;
@@ -246,6 +247,10 @@ namespace ts.refactor.extractSymbol {
246247 return { targetRange : { range : statements , facts : rangeFacts , declarations } } ;
247248 }
248249
250+ if ( isJSDoc ( start ) ) {
251+ return { errors : [ createFileDiagnostic ( sourceFile , span . start , length , Messages . cannotExtractJSDoc ) ] } ;
252+ }
253+
249254 if ( isReturnStatement ( start ) && ! start . expression ) {
250255 // Makes no sense to extract an expression-less return statement.
251256 return { errors : [ createFileDiagnostic ( sourceFile , span . start , length , Messages . cannotExtractRange ) ] } ;
Original file line number Diff line number Diff line change @@ -380,6 +380,10 @@ switch (x) {
380380 `[#|{ 1;|] }` ,
381381 [ refactor . extractSymbol . Messages . cannotExtractRange . message ] ) ;
382382
383+ testExtractRangeFailed ( "extractRangeFailed19" ,
384+ `[#|/** @type {number} */|] const foo = 1;` ,
385+ [ refactor . extractSymbol . Messages . cannotExtractJSDoc . message ] ) ;
386+
383387 testExtractRangeFailed ( "extract-method-not-for-token-expression-statement" , `[#|a|]` , [ refactor . extractSymbol . Messages . cannotExtractIdentifier . message ] ) ;
384388 } ) ;
385389}
You can’t perform that action at this time.
0 commit comments