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

[SR-9196] Typealiases from conforming protocols can't be defined within constrained extensions #51687

Open
swift-ci opened this issue Nov 6, 2018 · 5 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@swift-ci
Copy link
Collaborator

swift-ci commented Nov 6, 2018

Previous ID SR-9196
Radar rdar://problem/45962560
Original Reporter twof (JIRA User)
Type Bug

Attachment: Download

Environment

Swift 4.2
XCode 10
macOS 10.13.6

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug
Assignee None
Priority Medium

md5: e24504dceb83ccd2432e608814a8f326

Issue Description:

I originally reported this in a forum thread here, but @AnthonyLatsis wasn't sure if it was a bug or a missing feature.

Here is a minimal repro snippet

@swift-ci
Copy link
Collaborator Author

swift-ci commented Nov 6, 2018

Comment by Alex Reilly (JIRA)

I'm not sure if this is related or not, but the following similar snippet segmentation faults

@weissi
Copy link
Member

weissi commented Nov 6, 2018

here's the compiler crasher

0  swift                    0x00000001071be38a PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x00000001071bdb3e SignalHandler(int) + 302
2  libsystem_platform.dylib 0x00007fff64076b3d _sigtramp + 29
3  swift                    0x0000000106ef0149 llvm::BitstreamCursor::readRecord(unsigned int, llvm::SmallVectorImpl<unsigned long long>&, llvm::StringRef*) + 889
4  swift                    0x00000001049b9709 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<swift::Type::transform(llvm::function_ref<swift::Type (swift::Type)>) const::$_15>(long, swift::TypeBase*) + 25
5  swift                    0x00000001049b9778 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const + 56
6  swift                    0x000000010366c804 swift::irgen::IRGenFunction::emitTypeMetadataRef(swift::CanType, swift::irgen::DynamicMetadataRequest) + 84
7  swift                    0x000000010366c507 (anonymous namespace)::EmitTypeMetadataRef::visitAnyMetatypeType(swift::CanTypeWrapper<swift::AnyMetatypeType>, swift::irgen::DynamicMetadataRequest) + 199
8  swift                    0x0000000103668abb emitDirectTypeMetadataRef(swift::irgen::IRGenFunction&, swift::CanType, swift::irgen::DynamicMetadataRequest) + 363
9  swift                    0x000000010366893a swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>::callback_fn<swift::irgen::createDirectTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, bool)::$_2>(long, swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*) + 378
10 swift                    0x00000001036687a9 swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>::callback_fn<swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool)::$_1>(long, swift::irgen::IRGenFunction&, swift::irgen::Explosion&) + 89
11 swift                    0x00000001036669e7 swift::irgen::emitCacheAccessFunction(swift::irgen::IRGenModule&, llvm::Function*, llvm::Constant*, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>, bool) + 1495
12 swift                    0x000000010366871b swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool) + 1227
13 swift                    0x000000010366cbd5 swift::irgen::getOrCreateTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType) + 149
14 swift                    0x000000010366c8e6 swift::irgen::IRGenFunction::emitTypeMetadataRef(swift::CanType, swift::irgen::DynamicMetadataRequest) + 310
15 swift                    0x000000010366c507 (anonymous namespace)::EmitTypeMetadataRef::visitAnyMetatypeType(swift::CanTypeWrapper<swift::AnyMetatypeType>, swift::irgen::DynamicMetadataRequest) + 199
16 swift                    0x0000000103668abb emitDirectTypeMetadataRef(swift::irgen::IRGenFunction&, swift::CanType, swift::irgen::DynamicMetadataRequest) + 363
17 swift                    0x000000010366893a swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>::callback_fn<swift::irgen::createDirectTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, bool)::$_2>(long, swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*) + 378
18 swift                    0x00000001036687a9 swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>::callback_fn<swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool)::$_1>(long, swift::irgen::IRGenFunction&, swift::irgen::Explosion&) + 89
19 swift                    0x00000001036669e7 swift::irgen::emitCacheAccessFunction(swift::irgen::IRGenModule&, llvm::Function*, llvm::Constant*, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>, bool) + 1495
20 swift                    0x000000010366871b swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool) + 1227
21 swift                    0x000000010366cbd5 swift::irgen::getOrCreateTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType) + 149
22 swift                    0x000000010366c8e6 swift::irgen::IRGenFunction::emitTypeMetadataRef(swift::CanType, swift::irgen::DynamicMetadataRequest) + 310
23 swift                    0x000000010366c507 (anonymous namespace)::EmitTypeMetadataRef::visitAnyMetatypeType(swift::CanTypeWrapper<swift::AnyMetatypeType>, swift::irgen::DynamicMetadataRequest) + 199
24 swift                    0x0000000103668abb emitDirectTypeMetadataRef(swift::irgen::IRGenFunction&, swift::CanType, swift::irgen::DynamicMetadataRequest) + 363
25 swift                    0x000000010366893a swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>::callback_fn<swift::irgen::createDirectTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, bool)::$_2>(long, swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*) + 378
26 swift                    0x00000001036687a9 swift::irgen::MetadataResponse llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>::callback_fn<swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool)::$_1>(long, swift::irgen::IRGenFunction&, swift::irgen::Explosion&) + 89
27 swift                    0x00000001036669e7 swift::irgen::emitCacheAccessFunction(swift::irgen::IRGenModule&, llvm::Function*, llvm::Constant*, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::Explosion&)>, bool) + 1495
28 swift                    0x000000010366871b swift::irgen::createTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType, swift::irgen::CacheStrategy, llvm::function_ref<swift::irgen::MetadataResponse (swift::irgen::IRGenFunction&, swift::irgen::DynamicMetadataRequest, llvm::Constant*)>, bool) + 1227
29 swift                    0x000000010366cbd5 swift::irgen::getOrCreateTypeMetadataAccessFunction(swift::irgen::IRGenModule&, swift::CanType) + 149
30 swift                    0x00000001035b8cbb swift::SILWitnessVisitor<(anonymous namespace)::WitnessTableBuilder>::visitProtocolDecl(swift::ProtocolDecl*)::'lambda'()::operator()() const + 763
31 swift                    0x00000001035b8219 swift::SILWitnessVisitor<(anonymous namespace)::WitnessTableBuilder>::visitProtocolDecl(swift::ProtocolDecl*) + 6361
32 swift                    0x00000001035b43de swift::irgen::IRGenModule::emitSILWitnessTable(swift::SILWitnessTable*) + 1326
33 swift                    0x00000001034f6ecb swift::irgen::IRGenerator::emitGlobalTopLevel(bool) + 2491
34 swift                    0x00000001035fab73 performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, swift::SourceFile*, llvm::GlobalVariable**, unsigned int) + 1075
35 swift                    0x00000001035f7f00 swift::performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, llvm::GlobalVariable**) + 704
36 swift                    0x000000010342ee25 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 47141
37 swift                    0x0000000103420356 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 7814
38 swift                    0x00000001033c5375 main + 1349
39 libdyld.dylib            0x00007fff63e8d0a5 start + 1

@weissi
Copy link
Member

weissi commented Nov 6, 2018

@swift-ci create

@belkadan
Copy link
Contributor

belkadan commented Nov 6, 2018

Can you file a separate bug for the crash? It's not related.

@DougGregor probably has a dup of this one.

@swift-ci
Copy link
Collaborator Author

swift-ci commented Nov 6, 2018

Comment by Alex Reilly (JIRA)

Here's the link
https://bugs.swift.org/browse/SR-9199

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself
Projects
None yet
Development

No branches or pull requests

3 participants