Skip to content

public stored property in extension hits should not be synthesizing accessor in this case #83969

@hamishknight

Description

@hamishknight

Stress tester started hitting this after the landing of #83910, the following test case crashes:

public struct S {}
extension S {
  public var value: Int?
}
should not be synthesizing accessor in this case
UNREACHABLE executed at /Users/hamish/src/swift-dev/swift/lib/Sema/TypeCheckStorage.cpp:2904!
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.      Program arguments: /Users/hamish/src/swift-dev/build/Release/swift-macosx-arm64/bin/swift-frontend -typecheck /Users/hamish/src/swift-test-arena/main.swift -sdk /Users/hamish/src/MacOSX.sdk -debug-diagnostic-names -diagnostic-style=llvm
1.      Swift version 6.2-dev (LLVM 98b6ce99bd968eb, Swift 7296c8262578781)
2.      Compiling with effective version 5.10
3.      While evaluating request TypeCheckPrimaryFileRequest(source_file "/Users/hamish/src/swift-test-arena/main.swift")
4.      While type-checking extension of S (at /Users/hamish/src/swift-test-arena/main.swift:1571:1)
5.      While type-checking declaration 0x9e8af3210 (at /Users/hamish/src/swift-test-arena/main.swift:1572:10)
6.      While type-checking setter for value (at /Users/hamish/src/swift-test-arena/main.swift:1572:14)
7.      While evaluating request FragileFunctionKindRequest(0x9e8b58018 AbstractFunctionDecl name=set : (inout S) -> (Int?) -> ())
8.      While evaluating request IsAccessorTransparentRequest(main.(file).S extension.value.setter@/Users/hamish/src/swift-test-arena/main.swift:1572:14)
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           0x00000001066ea484 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x00000001066e87a0 llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x00000001066eab00 SignalHandler(int, __siginfo*, void*) + 324
3  libsystem_platform.dylib 0x0000000185d1c704 _sigtramp + 56
4  libsystem_pthread.dylib  0x0000000185d12848 pthread_kill + 296
5  libsystem_c.dylib        0x0000000185c18808 abort + 124
6  swift-frontend           0x00000001066622bc llvm::install_out_of_memory_new_handler() + 0
7  swift-frontend           0x0000000101d0bd9c swift::IsAccessorTransparentRequest::evaluate(swift::Evaluator&, swift::AccessorDecl*) const + 604
8  swift-frontend           0x0000000102071474 swift::IsAccessorTransparentRequest::OutputType swift::Evaluator::getResultUncached<swift::IsAccessorTransparentRequest, swift::IsAccessorTransparentRequest::OutputType swift::evaluateOrDefault<swift::IsAccessorTransparentRequest>(swift::Evaluator&, swift::IsAccessorTransparentRequest, swift::IsAccessorTransparentRequest::OutputType)::'lambda'()>(swift::IsAccessorTransparentRequest const&, swift::IsAccessorTransparentRequest::OutputType swift::evaluateOrDefault<swift::IsAccessorTransparentRequest>(swift::Evaluator&, swift::IsAccessorTransparentRequest, swift::IsAccessorTransparentRequest::OutputType)::'lambda'()) + 236
9  swift-frontend           0x0000000102049b5c swift::AbstractFunctionDecl::isTransparent() const + 160
10 swift-frontend           0x00000001020fcc60 swift::FragileFunctionKindRequest::evaluate(swift::Evaluator&, swift::DeclContext*) const + 320
11 swift-frontend           0x0000000102100b08 swift::FragileFunctionKindRequest::OutputType swift::Evaluator::getResultUncached<swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'()>(swift::FragileFunctionKindRequest const&, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'()) + 208
12 swift-frontend           0x0000000102100968 swift::FragileFunctionKindRequest::OutputType swift::Evaluator::getResultCached<swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'(), (void*)0>(swift::FragileFunctionKindRequest const&, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'()) + 348
13 swift-frontend           0x00000001020fcb08 swift::DeclContext::getFragileFunctionKind() const + 132
14 swift-frontend           0x0000000101bf6770 swift::ExportContext::forDeclSignature(swift::Decl*) + 88
15 swift-frontend           0x0000000101babab4 swift::checkAccessControl(swift::Decl*) + 7124
16 swift-frontend           0x0000000101c807c0 (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) + 148

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwaretype checkerArea → compiler: Semantic analysis

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions