Skip to content

@_specialized crashes in EagerSpecializer when used with typed throws #82378

Open
@thunderseethe

Description

@thunderseethe

Description

For context I'm attempting to modify SwiftSyntax's SyntaxVisitor to support typed throws by annotating each visitor method with a throws (E) effect specifier, where E: Error. I'm currently using Swift 6.1, so I'm using the @_specialize annotation rather than @specialized. If I annotate private methods (visitChildren, dispatchVisit, visit*Impl, etc), I encounter a crash in the EagerSpecializer.

Reproduction

open class ThrowingSyntaxVisitor<E: Error> {
  // intro of visitor class...

  @_specialize(where E == Never)
  private func visitChildren(_ node: Syntax) throws (E) {
    for case let childDataRef? in node.layoutBuffer where viewMode.shouldTraverse(node: childDataRef.pointee.raw) {
      try dispatchVisit(Syntax(arena: node.arena, dataRef: childDataRef))
    }
  }
}

Stack dump

Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.	Program arguments: /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/AbsolutePosition.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/AbsoluteSyntaxInfo.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/ArenaAllocatedBuffer.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Assert.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/BumpPtrAllocator.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/CommonAncestor.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Convenience.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/CustomTraits.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/EditorPlaceholder.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Identifier.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/MemoryLayout.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/MissingNodeInitializers.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Raw/RawSyntax.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Raw/RawSyntaxArena.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Raw/RawSyntaxLayoutView.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Raw/RawSyntaxNodeProtocol.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Raw/RawSyntaxTokenView.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SourceEdit.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SourceLength.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SourceLocation.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SourcePresence.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SwiftSyntaxCompatibility.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Syntax.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxChildren.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxCollection.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxHashable.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxIdentifier.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxNodeStructure.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxProtocol.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxText.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/SyntaxTreeViewMode.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/TokenDiagnostic.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/TokenSequence.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/TokenSyntax.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Trivia.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/Utils.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/Keyword.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/RenamedChildrenCompatibility.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/RenamedNodesCompatibility.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxCollections.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxEnum.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxKind.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxRewriter.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxTraits.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxVisitor.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/ThrowingSpecSyntaxVisitor.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/TokenKind.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/Tokens.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/TriviaPieces.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesAB.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesC.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesD.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesEF.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesGHI.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesJKLMN.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesOP.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesQRS.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesC.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesD.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesEF.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesGHI.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesOP.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesQRS.swift /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesTUVWXYZ.swift -supplementary-output-file-map /var/folders/1w/_t71y0091x5994q_qjw6nmsm00g9ps/T/TemporaryDirectory.uH1RrU/supplementaryOutputs-1 -target arm64-apple-macosx10.15 -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -I /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/Modules -I /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -F /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/PrivateFrameworks -color-diagnostics -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/ModuleCache -swift-version 6 -O -D SWIFT_PACKAGE -new-driver-path /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-driver -empty-abi-descriptor -resource-dir /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -file-compilation-dir /Users/ethansmith/swift-syntax -Xcc -fmodule-map-file=/Users/ethansmith/swift-syntax/Sources/_SwiftSyntaxCShims/include/module.modulemap -Xcc -I -Xcc /Users/ethansmith/swift-syntax/Sources/_SwiftSyntaxCShims/include -Xcc -isysroot -Xcc /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -Xcc -F -Xcc /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -Xcc -F -Xcc /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/PrivateFrameworks -Xcc -fPIC -Xcc -g -module-name SwiftSyntax -package-name swift_syntax -disable-clang-spi -target-sdk-version 15.5 -target-sdk-name macosx15.5 -external-plugin-path /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -in-process-plugin-server-path /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -plugin-path /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -num-threads 10 -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/AbsolutePosition.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/AbsoluteSyntaxInfo.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/ArenaAllocatedBuffer.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Assert.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/BumpPtrAllocator.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/CommonAncestor.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Convenience.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/CustomTraits.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/EditorPlaceholder.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Identifier.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/MemoryLayout.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/MissingNodeInitializers.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntax.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxArena.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxLayoutView.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodeProtocol.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxTokenView.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SourceEdit.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SourceLength.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SourceLocation.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SourcePresence.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SwiftSyntaxCompatibility.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Syntax.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxChildren.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxCollection.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxHashable.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxIdentifier.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodeStructure.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxProtocol.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxText.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxTreeViewMode.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/TokenDiagnostic.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/TokenSequence.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/TokenSyntax.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Trivia.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Utils.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/ChildNameForKeyPath.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Keyword.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RenamedChildrenCompatibility.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RenamedNodesCompatibility.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxAnyVisitor.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxBaseNodes.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxCollections.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxEnum.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxKind.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxRewriter.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxTraits.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxVisitor.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/ThrowingSpecSyntaxVisitor.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/TokenKind.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/Tokens.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/TriviaPieces.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesAB.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesC.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesD.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesEF.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesGHI.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesJKLMN.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesOP.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesQRS.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxNodesTUVWXYZ.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/RawSyntaxValidation.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesAB.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesC.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesD.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesEF.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesGHI.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesJKLMN.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesOP.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesQRS.swift.o -o /Users/ethansmith/swift-syntax/.build/arm64-apple-macosx/release/SwiftSyntax.build/SyntaxNodesTUVWXYZ.swift.o
1.	Apple Swift version 6.1.2 (swiftlang-6.1.2.1.2 clang-1700.0.13.5)
2.	Compiling with the current language version
3.	While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for SwiftSyntax)
4.	While running pass #3532701 SILFunctionTransform "EagerSpecializer" on SILFunction "@$s11SwiftSyntax08ThrowingB7VisitorC13visitChildren33_F966D2E530B0A562820FA4876E472C28LLyyAA0B0VxYKF".
 for 'visitChildren(_:)' (at /Users/ethansmith/swift-syntax/Sources/SwiftSyntax/generated/SyntaxVisitor.swift:7971:11)
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend           0x000000010b2bee24 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x000000010b2bcc5c llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x000000010b2bf460 SignalHandler(int) + 360
3  libsystem_platform.dylib 0x0000000181fbc624 _sigtramp + 56
4  swift-frontend           0x0000000106068c78 addReturnValueImpl(swift::SILBasicBlock*, swift::SILBasicBlock*, swift::SILValue) + 132
5  swift-frontend           0x000000010606697c (anonymous namespace)::EagerSpecializerTransform::run() + 7948
6  swift-frontend           0x0000000105fafa9c swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 3336
7  swift-frontend           0x0000000105fa906c swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 208
8  swift-frontend           0x0000000105fe6edc swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 52
9  swift-frontend           0x0000000105fca96c swift::ExecuteSILPipelineRequest::OutputType swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()>(swift::ExecuteSILPipelineRequest const&, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()) + 412
10 swift-frontend           0x0000000105fce1bc swift::runSILOptimizationPasses(swift::SILModule&) + 448
11 swift-frontend           0x00000001054d0a9c swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 1148
12 swift-frontend           0x0000000105110d90 performCompileStepsPostSILGen(swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>>, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 1360
13 swift-frontend           0x000000010511071c swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 2688
14 swift-frontend           0x0000000105113654 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1764
15 swift-frontend           0x0000000105111fd8 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 3716
16 swift-frontend           0x00000001050960bc swift::mainEntry(int, char const**) + 5428
17 dyld                     0x0000000181be2b98 start + 6076

Expected behavior

Specialized version of visitChildren is produced that optimizes away the throwing code since E == Never or a compiler error is produced explaining why the annotation won't work as expected.

Environment

Apple Swift version 6.1.2 (swiftlang-6.1.2.1.2 clang-1700.0.13.5)
Target: arm64-apple-macosx15.0

Additional information

I've used visitChildren in the example here, but I encounter the same error annotating any of the private methods within SyntaxVisitor (dispatchChildren, visitSwitchCaseListSyntaxImpl, visitSourceFileSyntaxImpl, etc)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.crashBug: A crash, i.e., an abnormal termination of softwaretriage neededThis issue needs more specific labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions