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-14693] Assertion failed: (hasType(node) && "Expected type to have been set!") #57043

Closed
ahoppen opened this issue Jun 1, 2021 · 2 comments
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

@ahoppen
Copy link
Contributor

ahoppen commented Jun 1, 2021

Previous ID SR-14693
Radar rdar://78780917
Original Reporter @ahoppen
Type Bug
Status Closed
Resolution Done
Additional Detail from JIRA
Votes 0
Component/s CodeCompletion
Labels Bug, FoundByStressTester
Assignee None
Priority Medium

md5: 2936f31d586be71a31aff17bd991552f

Issue Description:

The following test case causes an assertion failure.

// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=COMPLETE

@resultBuilder public struct ViewBuilder2 {
    public static func buildBlock<Content>(_ content: Content) -> Never
}

public struct NavigationLink2<Label, Destination> {
    public init(destination: Destination, @ViewBuilder2 label: () -> Label)
    public init(_ titleKey: String, destination: Destination)
}

struct MoviePosterImage2 {
    var imageLoader: Movie2
}
struct MovieDetail2 {}
struct Movie2 {}

struct MoviesHomeGridMoviesRow {
    func foo() {
        let movie: Movie2
        _ = NavigationLink2(destination: MovieDetail2()) {
            MoviePosterImage2(imageLoader: movie.#^COMPLETE^#

struct MoviesHomeGridMoviesRow_Previews {
}

Stack trace:

Assertion failed: (hasType(node) && "Expected type to have been set!"), function getType, file /Users/alex/swift-src/swift/include/swift/Sema/ConstraintSystem.h, line 2966.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.  Program arguments: /Users/alex/swift-src/nbuild/Release+Asserts/bin/swift-ide-test -target x86_64-apple-macosx10.9 -resource-dir /Users/alex/swift-src/nbuild/Release+Asserts/lib/swift -module-cache-path /Users/alex/swift-src/nbuild/Release+Asserts/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache -completion-cache-path /Users/alex/swift-src/nbuild/Release+Asserts/swift-test-results/x86_64-apple-macosx10.9/completion-cache -swift-version 4 -code-completion -source-filename /Users/alex/swift-src/swift/test/SourceKit/test.swift -code-completion-token=COMPLETE
1.  While performing new completion
2.  While evaluating request CodeCompletionSecondPassRequest(source_file "/Users/alex/swift-src/swift/test/SourceKit/test.swift", )
3.  While evaluating request TypeCheckASTNodeAtLocRequest(0x7ff1f8039150 AbstractFunctionDecl name=foo() : (no type set), )
4.  While evaluating request TypeCheckASTNodeAtLocRequest(0x7ff1f8039150 AbstractFunctionDecl name=foo() : (no type set), )
5.  While type-checking expression at [/Users/alex/swift-src/swift/test/SourceKit/test.swift:21:9 - line:25:1] RangeText="_ = NavigationLink2(destination: MovieDetail2()) {
            MoviePosterImage2(imageLoader: movie.

struct MoviesHomeGridMoviesRow_Previews {
"
6.  While code-completion expression at [/Users/alex/swift-src/swift/test/SourceKit/test.swift:21:9 - line:25:1] RangeText="_ = NavigationLink2(destination: MovieDetail2()) {
            MoviePosterImage2(imageLoader: movie.

struct MoviesHomeGridMoviesRow_Previews {
"
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-ide-test           0x0000000108533c67 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
1  swift-ide-test           0x0000000108532a88 llvm::sys::RunSignalHandlers() + 248
2  swift-ide-test           0x0000000108534296 SignalHandler(int) + 262
3  libsystem_platform.dylib 0x00007fff20365d7d _sigtramp + 29
4  libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603339975729824
5  libsystem_c.dylib        0x00007fff20275411 abort + 120
6  libsystem_c.dylib        0x00007fff202747e8 err + 0
7  swift-ide-test           0x00000001089c7413 swift::constraints::ConstraintSystem::getType(swift::ASTNode) const (.cold.2) + 35
8  swift-ide-test           0x000000010480f1ed swift::constraints::ConstraintSystem::getType(swift::ASTNode) const + 205
9  swift-ide-test           0x00000001048290de swift::constraints::Solution::getResolvedType(swift::ASTNode) const + 14
10 swift-ide-test           0x00000001049e8a97 swift::DotExprTypeCheckCompletionCallback::sawSolution(swift::constraints::Solution const&) + 87
11 swift-ide-test           0x00000001049e7c79 swift::TypeChecker::typeCheckForCodeCompletion(swift::constraints::SolutionApplicationTarget&, bool, llvm::function_ref<void (swift::constraints::Solution const&)>)::$_2::operator()(swift::constraints::SolutionApplicationTarget&) const + 1353
12 swift-ide-test           0x00000001049e75e6 swift::TypeChecker::typeCheckForCodeCompletion(swift::constraints::SolutionApplicationTarget&, bool, llvm::function_ref<void (swift::constraints::Solution const&)>) + 838
13 swift-ide-test           0x00000001049fbb01 swift::TypeChecker::typeCheckExpression(swift::constraints::SolutionApplicationTarget&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 305
14 swift-ide-test           0x00000001049fb94e swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::constraints::ContextualTypeInfo, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 78
15 swift-ide-test           0x0000000104ac1544 (anonymous namespace)::StmtChecker::typeCheckASTNode(swift::ASTNode&) + 244
16 swift-ide-test           0x0000000104ac192a swift::TypeCheckASTNodeAtLocRequest::evaluate(swift::Evaluator&, swift::DeclContext*, swift::SourceLoc) const + 538
17 swift-ide-test           0x0000000104afdff3 llvm::Expected<swift::TypeCheckASTNodeAtLocRequest::OutputType> swift::Evaluator::getResultUncached<swift::TypeCheckASTNodeAtLocRequest>(swift::TypeCheckASTNodeAtLocRequest const&) + 243
18 swift-ide-test           0x0000000104af7e37 swift::TypeCheckASTNodeAtLocRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckASTNodeAtLocRequest>(swift::Evaluator&, swift::TypeCheckASTNodeAtLocRequest, swift::TypeCheckASTNodeAtLocRequest::OutputType) + 55
19 swift-ide-test           0x0000000104af7de1 swift::typeCheckASTNodeAtLoc(swift::DeclContext*, swift::SourceLoc) + 65
20 swift-ide-test           0x0000000104ac18f6 swift::TypeCheckASTNodeAtLocRequest::evaluate(swift::Evaluator&, swift::DeclContext*, swift::SourceLoc) const + 486
21 swift-ide-test           0x0000000104afdff3 llvm::Expected<swift::TypeCheckASTNodeAtLocRequest::OutputType> swift::Evaluator::getResultUncached<swift::TypeCheckASTNodeAtLocRequest>(swift::TypeCheckASTNodeAtLocRequest const&) + 243
22 swift-ide-test           0x0000000104af7e37 swift::TypeCheckASTNodeAtLocRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckASTNodeAtLocRequest>(swift::Evaluator&, swift::TypeCheckASTNodeAtLocRequest, swift::TypeCheckASTNodeAtLocRequest::OutputType) + 55
23 swift-ide-test           0x0000000104af7de1 swift::typeCheckASTNodeAtLoc(swift::DeclContext*, swift::SourceLoc) + 65
24 swift-ide-test           0x0000000103e7f923 swift::ide::typeCheckContextAt(swift::DeclContext*, swift::SourceLoc) + 771
25 swift-ide-test           0x0000000103e5841d (anonymous namespace)::CodeCompletionCallbacksImpl::doneParsing() + 461
26 swift-ide-test           0x0000000104d6a7c8 swift::Parser::performCodeCompletionSecondPassImpl(swift::CodeCompletionDelayedDeclState&) + 888
27 swift-ide-test           0x0000000104d6a348 swift::CodeCompletionSecondPassRequest::evaluate(swift::Evaluator&, swift::SourceFile*, swift::CodeCompletionCallbacksFactory*) const + 232
28 swift-ide-test           0x0000000104d74a1f llvm::Expected<swift::CodeCompletionSecondPassRequest::OutputType> swift::Evaluator::getResultUncached<swift::CodeCompletionSecondPassRequest>(swift::CodeCompletionSecondPassRequest const&) + 271
29 swift-ide-test           0x0000000104d6a157 swift::CodeCompletionSecondPassRequest::OutputType swift::evaluateOrDefault<swift::CodeCompletionSecondPassRequest>(swift::Evaluator&, swift::CodeCompletionSecondPassRequest, swift::CodeCompletionSecondPassRequest::OutputType) + 55
30 swift-ide-test           0x0000000103e7db01 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)>) + 529
31 swift-ide-test           0x0000000103e7df98 swift::ide::CompletionInstance::performOperation(swift::CompilerInvocation&, llvm::ArrayRef<char const*>, 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)>) + 680
32 swift-ide-test           0x0000000103a93ac0 doCodeCompletionImpl(swift::CodeCompletionCallbacksFactory*, swift::CompilerInvocation const&, llvm::StringRef, llvm::StringRef, llvm::StringRef, bool) + 1376
33 swift-ide-test           0x0000000103a86560 main + 26144
34 libdyld.dylib            0x00007fff2033bf3d start + 1
/Users/alex/swift-src/nbuild/Release+Asserts/tools/swift/test-macosx-x86_64/SourceKit/Output/test.swift.script: line 1: 56715 Abort trap: 6           xcrun --toolchain XcodeDefault --sdk '/Applications/Xcode-Customer.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk' /Users/alex/swift-src/nbuild/Release+Asserts/bin/swift-ide-test -target x86_64-apple-macosx10.9 -resource-dir /Users/alex/swift-src/nbuild/Release+Asserts/lib/swift -module-cache-path /Users/alex/swift-src/nbuild/Release+Asserts/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache -completion-cache-path '/Users/alex/swift-src/nbuild/Release+Asserts/swift-test-results/x86_64-apple-macosx10.9/completion-cache' -swift-version 4 -code-completion -source-filename /Users/alex/swift-src/swift/test/SourceKit/test.swift -code-completion-token=COMPLETE
@ahoppen
Copy link
Contributor Author

ahoppen commented Jun 21, 2021

This does not crash in release builds.

@ahoppen
Copy link
Contributor Author

ahoppen commented Mar 17, 2022

Fixed by #41846

@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

2 participants