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-4786] Infinite recursion in compareDependentTypes/getArchetypeAnchor with associated types with incompatible bounds #47363

Closed
huonw mannequin opened this issue May 3, 2017 · 2 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@huonw
Copy link
Mannequin

huonw mannequin commented May 3, 2017

Previous ID SR-4786
Radar rdar://problem/31955862
Original Reporter @huonw
Type Bug
Status Resolved
Resolution Done
Environment

aa8d64c (2017-04-30)

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

md5: 39a4d5ccea1ff674919d7babbb66b65b

Issue Description:

public protocol _UTFEncoding {
    associatedtype EncodedScalar where EncodedScalar == Int
}

public protocol UnicodeEncoding {
    associatedtype EncodedScalar: BidirectionalCollection
}

public protocol _UTFParser {
    associatedtype Encoding: UnicodeEncoding, _UTFEncoding
}

  * frame #​0: 0x0000000100febda5 swift`compareDependentTypes(pa=0x00007fff5fbec598, pb=0x00007fff5fbec5a0) at GenericSignatureBuilder.cpp:1415 [opt]
    frame #&#8203;1: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;2: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;3: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;4: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;5: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;6: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;7: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;8: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;9: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;10: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]

...

    frame #&#8203;398: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;399: 0x0000000100fec09e swift`compareDependentTypes(pa=<unavailable>, pb=<unavailable>) at GenericSignatureBuilder.cpp:1438 [opt]
    frame #&#8203;400: 0x0000000100feb4e7 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=<unavailable>, builder=<unavailable>) at GenericSignatureBuilder.cpp:1511 [opt]
    frame #&#8203;401: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x000000010591f260, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;402: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x000000010591f520, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]

...

    frame #&#8203;598: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x0000000105a239d0, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;599: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x0000000105a23c90, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;600: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x0000000105a23f50, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;601: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x0000000105a24210, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;602: 0x0000000100feb235 swift`swift::GenericSignatureBuilder::PotentialArchetype::getArchetypeAnchor(this=0x0000000105a244d0, builder=0x00007fff5fbfc290) at GenericSignatureBuilder.cpp:1490 [opt]
    frame #&#8203;603: 0x0000000100ff78ea swift`swift::GenericSignatureBuilder::finalize(swift::SourceLoc, llvm::ArrayRef<swift::GenericTypeParamType*>, bool) at GenericSignatureBuilder.cpp:4858 [opt]
    frame #&#8203;604: 0x0000000100ff74c0 swift`swift::GenericSignatureBuilder::finalize(this=<unavailable>, loc=<unavailable>, genericParams=<unavailable>, allowConcreteGenericParams=<unavailable>) at GenericSignatureBuilder.cpp:3864 [opt]
    frame #&#8203;605: 0x0000000100ea71fd swift`swift::TypeChecker::checkGenericEnvironment(this=0x00007fff5fbfc8d8, genericParams=0x000000010739e0c8, dc=0x00000001074472a0, parentSig=<unavailable>, allowConcreteGenericParams=<unavailable>, inferRequirements=function_ref<void (swift::GenericSignatureBuilder &)> @ 0x00007fff5fbfc360)>) at TypeCheckGeneric.cpp:1168 [opt]
    frame #&#8203;606: 0x0000000100ea7622 swift`swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) [inlined] swift::TypeChecker::checkGenericEnvironment(this=0x00007fff5fbfc8d8, genericParams=<unavailable>, outerSignature=<unavailable>, allowConcreteGenericParams=false) at TypeChecker.h:1316 [opt]
    frame #&#8203;607: 0x0000000100ea75ea swift`swift::TypeChecker::validateGenericTypeSignature(this=0x00007fff5fbfc8d8, typeDecl=<unavailable>) at TypeCheckGeneric.cpp:1234 [opt]
    frame #&#8203;608: 0x0000000100e7c5d2 swift`swift::TypeChecker::validateDecl(this=0x00007fff5fbfc8d8, D=0x0000000107449dd0) at TypeCheckDecl.cpp:7150 [opt]
    frame #&#8203;609: 0x0000000100e8aee6 swift`(anonymous namespace)::DeclChecker::visitProtocolDecl(this=0x00007fff5fbfc878, PD=0x0000000107449dd0) at TypeCheckDecl.cpp:4577 [opt]
    frame #&#8203;610: 0x0000000100e7ab57 swift`(anonymous namespace)::DeclChecker::visit(swift::Decl*) [inlined] swift::ASTVisitor<(anonymous namespace)::DeclChecker, void, void, void, void, void, void>::visit(D=0x0000000107449dd0) at DeclNodes.def:115 [opt]
    frame #&#8203;611: 0x0000000100e7a9cd swift`(anonymous namespace)::DeclChecker::visit(this=0x00007fff5fbfc878, decl=0x0000000107449dd0) at TypeCheckDecl.cpp:3813 [opt]
    frame #&#8203;612: 0x0000000100e7a974 swift`swift::TypeChecker::typeCheckDecl(this=0x00007fff5fbfc8d8, D=0x0000000107449dd0, isFirstPass=true) at TypeCheckDecl.cpp:6935 [opt]
    frame #&#8203;613: 0x0000000100efbc84 swift`swift::performTypeChecking(SF=<unavailable>, TLC=0x00007fff5fbfceb8, Options=<unavailable>, StartElem=<unavailable>, WarnLongFunctionBodies=<unavailable>) at TypeChecker.cpp:700 [opt]
    frame #&#8203;614: 0x0000000100a6b3ff swift`swift::CompilerInstance::performSema(this=<unavailable>) at Frontend.cpp:520 [opt]
    frame #&#8203;615: 0x0000000100043c8c swift`performCompile(Instance=0x00007fff5fbfe630, Invocation=0x00007fff5fbfd768, Args=<unavailable>, ReturnValue=0x00007fff5fbfe5f4, observer=0x0000000000000000, Stats=0x00007fff5fbfdd60) at FrontendTool.cpp:499 [opt]
    frame #&#8203;616: 0x000000010004282d swift`swift::performFrontend(Args=<unavailable>, Argv0=<unavailable>, MainAddr=<unavailable>, observer=0x0000000000000000) at FrontendTool.cpp:1193 [opt]
    frame #&#8203;617: 0x0000000100004676 swift`main(argc_=<unavailable>, argv_=<unavailable>) at driver.cpp:160 [opt]
    frame #&#8203;618: 0x00007fffeb2fc235 libdyld.dylib`start + 1
    frame #&#8203;619: 0x00007fffeb2fc235 libdyld.dylib`start + 1
@huonw
Copy link
Mannequin Author

huonw mannequin commented May 3, 2017

@swift-ci create

@DougGregor
Copy link
Member

89bed63

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
This issue was closed.
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

1 participant