Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unused imports crashes on import statements with trailing comment #2990

Closed
2 tasks done
kastiglione opened this issue Dec 17, 2019 · 0 comments · Fixed by #2993
Closed
2 tasks done

Unused imports crashes on import statements with trailing comment #2990

kastiglione opened this issue Dec 17, 2019 · 0 comments · Fixed by #2993

Comments

@kastiglione
Copy link
Contributor

New Issue Checklist

Describe the bug

The unused_import rule does not support import statements with a trailing comment.

return (module, contents.range(of: "import \(module)\n"))

Currently, this causes a crash.

Complete output when running SwiftLint, including the stack trace and command used
2019-12-16 18:08:48.968 swiftlint[61765:2014180] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFString replaceCharactersInRange:withString:]: Range or index out of bounds'
  | *** First throw call stack:
  | (
  | 0   CoreFoundation                      0x00007fff52efccf9 __exceptionPreprocess + 256
  | 1   libobjc.A.dylib                     0x00007fff7daafa17 objc_exception_throw + 48
  | 2   CoreFoundation                      0x00007fff52efcb2b +[NSException raise:format:] + 201
  | 3   CoreFoundation                      0x00007fff52f3ab2a mutateError + 261
  | 4   Foundation                          0x00007fff550bdeba -[NSString stringByReplacingCharactersInRange:withString:] + 142
  | 5   swiftlint                           0x000000010ee9ed8c $s18SwiftLintFramework16UnusedImportRuleV7correct4file17compilerArgumentsSayAA10CorrectionVGAA0aB4FileC_SaySSGtF + 684
  | 6   swiftlint                           0x000000010ed45f03 $s18SwiftLintFramework15CollectedLinterV7correct5usingSayAA10CorrectionVGAA11RuleStorageC_tF + 1219
  | 7   swiftlint                           0x000000010f02f692 $s9swiftlint14AnalyzeCommandV11autocorrect33_D106717C80DA5908B379D5A43478964DLLys6ResultOyyt10Commandant0L5ErrorOyytGGAA06LintOrB7OptionsVFy05SwiftN9Framework15CollectedLinterVcfU_ + 34
  | 8   swiftlint                           0x000000010f0472a8 $s18SwiftLintFramework13ConfigurationV9swiftlintE5visit33_30E847BB8C9F32DCEAC767137A79F9B7LL7linters7visitor7storage18duplicateFileNamesSayAA0abS0CGSayAA15CollectedLinterVG_AD20LintableFilesVisitorVAA11RuleStorageCShySSGtFAlOcfU_yyXEfU0_TA + 40
  | 9   swiftlint                           0x000000010f0472d1 $ss5Error_pIgzo_ytsAA_pIegrzo_TRTA + 17
  | 10  libswiftObjectiveC.dylib            0x00007fff7eff3f4f $s10ObjectiveC15autoreleasepool8invokingxxyKXE_tKlF + 47
  | 11  swiftlint                           0x000000010f0462a1 $s18SwiftLintFramework13ConfigurationV9swiftlintE5visit33_30E847BB8C9F32DCEAC767137A79F9B7LL7linters7visitor7storage18duplicateFileNamesSayAA0abS0CGSayAA15CollectedLinterVG_AD20LintableFilesVisitorVAA11RuleStorageCShySSGtFAlOcfU_ + 721
  | 12  swiftlint                           0x000000010f047269 $s18SwiftLintFramework15CollectedLinterVAA0aB4FileCIggo_AcEIegnr_TRTA + 57
  | 13  swiftlint                           0x000000010f0409e4 $sSa9swiftlintE11parallelMap9transformSayqd__Gqd__xXE_tlFADSryqd__SgGzXEfU_ySiXEfU_18SwiftLintFramework15CollectedLinterV_AG0eF4FileCTg5 + 740
  | 14  libswiftDispatch.dylib              0x00007fff7edefaf1 $sSiIgy_SiIegy_TRTA + 17
  | 15  libswiftDispatch.dylib              0x00007fff7edeab34 $sSiIegy_SiIyBy_TR + 20
  | 16  libdispatch.dylib                   0x00007fff7f290672 _dispatch_client_callout2 + 8
  | 17  libdispatch.dylib                   0x00007fff7f29ff95 _dispatch_apply_invoke + 157
  | 18  libdispatch.dylib                   0x00007fff7f29063d _dispatch_client_callout + 8
  | 19  libdispatch.dylib                   0x00007fff7f29e509 _dispatch_root_queue_drain + 657
  | 20  libdispatch.dylib                   0x00007fff7f29eb46 _dispatch_worker_thread2 + 90
  | 21  libsystem_pthread.dylib             0x00007fff7f4ca6b3 _pthread_wqthread + 583
  | 22  libsystem_pthread.dylib             0x00007fff7f4ca3fd start_wqthread + 13
  | )
  | libc++abi.dylib: terminating with uncaught exception of type NSException

Example

// This triggers a violation:
import Foo // Some comment about this
@kastiglione kastiglione changed the title Unused imports crashes on import statements with trailing comma Unused imports crashes on import statements with trailing comment Dec 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant