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-12985] Code completion: Assertion failed: (!knownType->isHole()), function visitDeclRefExpr #55431

Closed
nathawes opened this issue Jun 11, 2020 · 2 comments
Assignees
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. code completion Area → source tooling: code completion found by stress tester Flag: An issue found by the SourceKit stress tester source tooling Area: IDE support, SourceKit, and other source tooling

Comments

@nathawes
Copy link
Collaborator

Previous ID SR-12985
Radar rdar://problem/64265821
Original Reporter @nathawes
Type Bug
Status Resolved
Resolution Cannot Reproduce
Additional Detail from JIRA
Votes 0
Component/s CodeCompletion
Labels Bug, FoundByStressTester
Assignee @ahoppen
Priority Medium

md5: b882bc51a801a8cb8dec9024e88339f8

Issue Description:

Reproducer:

struct AnyPublisher<T> {
  public func sink(_: @escaping ((T) -> Void)) -> Void { fatalError() }
}
class MyClass {
  func fetchFile<T>(with: T) -> AnyPublisher<T> { fatalError() }
  init() {
    fetchFile(with: /*complete here*/42)
      .sink { a in var b = a }
  }
}

Trace:

Assertion failed: (!knownType->isHole()), function visitDeclRefExpr, file /Users/buildnode/jenkins/workspace/oss-swift-package-osx/swift/lib/Sema/CSGen.cpp, line 1426.
 
Thread 3 Crashed:
0   libsystem_kernel.dylib          0x00007fff6b42d33a __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff6b4e9e60 pthread_kill + 430
2   libsystem_c.dylib               0x00007fff6b3b48a2 __abort + 139
3   libsystem_c.dylib               0x00007fff6b3b4817 abort + 135
4   libsystem_c.dylib               0x00007fff6b3b3ac6 __assert_rtn + 314
5   com.apple.SourceKitService.5.0.20200610101_osx  0x0000000110d7a933 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (.cold.27) + 35
6   com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e3c4b91 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) + 28593
7   com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e3bbb98 (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) + 168
8   com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e8b8633 swift::Expr::walk(swift::ASTWalker&) + 115
9   com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e3b6c31 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*, swift::DeclContext*, bool) + 465
10  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e3b5948 swift::constraints::ConstraintSystem::generateConstraints(swift::constraints::SolutionApplicationTarget&, swift::FreeTypeVariableBinding) + 920
11  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e4073ff swift::constraints::ConstraintSystem::solveImpl(swift::constraints::SolutionApplicationTarget&, swift::FreeTypeVariableBinding) + 383
12  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e406e16 swift::constraints::ConstraintSystem::solve(swift::constraints::SolutionApplicationTarget&, swift::FreeTypeVariableBinding) + 102
13  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e502cd8 swift::TypeChecker::typeCheckExpression(swift::constraints::SolutionApplicationTarget&, bool&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 408
14  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e503ed8 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int) + 120
15  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e504163 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, swift::Type) + 371
16  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5ab5c1 swift::PatternBindingEntryRequest::evaluate(swift::Evaluator&, swift::PatternBindingDecl*, unsigned int) const + 641
17  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5d94e5 llvm::Expected<swift::PatternBindingEntryRequest::OutputType> swift::Evaluator::getResultUncached<swift::PatternBindingEntryRequest>(swift::PatternBindingEntryRequest const&) + 357
18  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5d9243 llvm::Expected<swift::PatternBindingEntryRequest::OutputType> swift::Evaluator::getResultCached<swift::PatternBindingEntryRequest, (void*)0>(swift::PatternBindingEntryRequest const&) + 51
19  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5d6188 swift::PatternBindingEntryRequest::OutputType swift::evaluateOrDefault<swift::PatternBindingEntryRequest>(swift::Evaluator&, swift::PatternBindingEntryRequest, swift::PatternBindingEntryRequest::OutputType) + 40
20  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e535f5f swift::ASTVisitor<(anonymous namespace)::DeclChecker, void, void, void, void, void, void>::visit(swift::Decl*) + 2703
21  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e53487f (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 159
22  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5347c2 swift::TypeChecker::typeCheckDecl(swift::Decl*) + 130
23  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a5b3a swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 2426
24  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a2ec0 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) + 128
25  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a2cae swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) + 286
26  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e3866b9 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::constraints::SolutionApplicationTarget) + 665
27  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e502d6d swift::TypeChecker::typeCheckExpression(swift::constraints::SolutionApplicationTarget&, bool&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 557
28  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e502aa7 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 87
29  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a5c65 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 2725
30  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a2ec0 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) + 128
31  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5a1ea5 swift::TypeCheckFunctionBodyAtLocRequest::evaluate(swift::Evaluator&, swift::AbstractFunctionDecl*, swift::SourceLoc) const + 437
32  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5da212 llvm::Expected<swift::TypeCheckFunctionBodyAtLocRequest::OutputType> swift::Evaluator::getResultUncached<swift::TypeCheckFunctionBodyAtLocRequest>(swift::TypeCheckFunctionBodyAtLocRequest const&) + 370
33  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5d6529 swift::TypeCheckFunctionBodyAtLocRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyAtLocRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyAtLocRequest, swift::TypeCheckFunctionBodyAtLocRequest::OutputType) + 41
34  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e5d64d4 swift::typeCheckAbstractFunctionBodyAtLoc(swift::AbstractFunctionDecl*, swift::SourceLoc) + 100
35  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010da0223d (anonymous namespace)::CodeCompletionCallbacksImpl::doneParsing() + 237
36  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e7928c6 swift::Parser::performCodeCompletionSecondPassImpl(swift::CodeCompletionDelayedDeclState&) + 870
37  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e792453 swift::CodeCompletionSecondPassRequest::evaluate(swift::Evaluator&, swift::SourceFile*, swift::CodeCompletionCallbacksFactory*) const + 211
38  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e79c5b1 llvm::Expected<swift::CodeCompletionSecondPassRequest::OutputType> swift::Evaluator::getResultUncached<swift::CodeCompletionSecondPassRequest>(swift::CodeCompletionSecondPassRequest const&) + 481
39  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e79c376 llvm::Expected<swift::CodeCompletionSecondPassRequest::OutputType> swift::Evaluator::operator()<swift::CodeCompletionSecondPassRequest, (void*)0>(swift::CodeCompletionSecondPassRequest const&) + 118
40  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010e792289 swift::CodeCompletionSecondPassRequest::OutputType swift::evaluateOrDefault<swift::CodeCompletionSecondPassRequest>(swift::Evaluator&, swift::CodeCompletionSecondPassRequest, swift::CodeCompletionSecondPassRequest::OutputType) + 41
41  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d90ceb1 void llvm::function_ref<void (swift::CompilerInstance&, bool)>::callback_fn<swiftCodeCompleteImpl(SourceKit::SwiftLangSupport&, llvm::MemoryBuffer*, unsigned int, (anonymous namespace)::SwiftCodeCompletionConsumer&, llvm::ArrayRef<char const*>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)::$_2>(long, swift::CompilerInstance&, bool) + 433
42  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010da32248 swift::ide::CompletionInstance::performNewOperation(llvm::Optional<llvm::hash_code>, swift::CompilerInvocation&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, llvm::MemoryBuffer*, unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, swift::DiagnosticConsumer*, llvm::function_ref<void (swift::CompilerInstance&, bool)>) + 568
43  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010da328c1 swift::ide::CompletionInstance::performOperation(swift::CompilerInvocation&, llvm::ArrayRef<char const*>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, llvm::MemoryBuffer*, unsigned int, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, swift::DiagnosticConsumer*, llvm::function_ref<void (swift::CompilerInstance&, bool)>) + 849
44  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d941893 SourceKit::SwiftLangSupport::performCompletionLikeOperation(llvm::MemoryBuffer*, unsigned int, llvm::ArrayRef<char const*>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, llvm::function_ref<void (swift::CompilerInstance&, bool)>) + 2547
45  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d906c05 SourceKit::SwiftLangSupport::codeComplete(llvm::MemoryBuffer*, unsigned int, SourceKit::OptionsDictionary*, SourceKit::CodeCompletionConsumer&, llvm::ArrayRef<char const*>, llvm::Optional<SourceKit::VFSOptions>) + 565
46  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d96fad3 handleSemanticRequest(sourcekitd::RequestDict, std::__1::function<void (void*)>, sourcekitd_uid_s*, llvm::Optional<llvm::StringRef>, llvm::Optional<llvm::StringRef>, llvm::ArrayRef<char const*>, llvm::Optional<SourceKit::VFSOptions>) + 2387
47  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d96f09a void SourceKit::WorkQueue::DispatchData::callAndDelete<handleRequestImpl(void*, std::__1::function<void (void*)>)::$_4>(void*) + 330
48  libdispatch.dylib               0x00007fff6b28c658 _dispatch_client_callout + 8
49  libdispatch.dylib               0x00007fff6b28ed79 _dispatch_block_invoke_direct + 245
50  com.apple.SourceKitService.5.0.20200610101_osx  0x0000000110728aaf executeBlock(void*) + 15
51  com.apple.SourceKitService.5.0.20200610101_osx  0x000000010d8eba2d threadFuncSync(void*) + 13
52  libsystem_pthread.dylib         0x00007fff6b4ea109 _pthread_start + 148
53  libsystem_pthread.dylib         0x00007fff6b4e5b8b thread_start + 15
@nathawes
Copy link
Collaborator Author

@swift-ci create

@ahoppen
Copy link
Contributor

ahoppen commented Mar 23, 2021

This appears to have been fixed in main. Added a test case for it in #36534

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@AnthonyLatsis AnthonyLatsis added the source tooling Area: IDE support, SourceKit, and other source tooling label Feb 6, 2023
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. code completion Area → source tooling: code completion found by stress tester Flag: An issue found by the SourceKit stress tester source tooling Area: IDE support, SourceKit, and other source tooling
Projects
None yet
Development

No branches or pull requests

3 participants