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-9966] code completion crash when using interpolated string #52370

Closed
marcrasi mannequin opened this issue Feb 21, 2019 · 0 comments
Closed

[SR-9966] code completion crash when using interpolated string #52370

marcrasi mannequin opened this issue Feb 21, 2019 · 0 comments
Assignees
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. code completion Area → source tooling: code completion compiler The Swift compiler in itself crash Bug: A crash, i.e., an abnormal termination of software source tooling Area: IDE support, SourceKit, and other source tooling

Comments

@marcrasi
Copy link
Mannequin

marcrasi mannequin commented Feb 21, 2019

Previous ID SR-9966
Radar None
Original Reporter @marcrasi
Type Bug
Status Resolved
Resolution Done
Additional Detail from JIRA
Votes 0
Component/s CodeCompletion
Labels Bug, CompilerCrash
Assignee @marcrasi
Priority Medium

md5: f0afeb71caf7e98078fa69d138be8a8f

Issue Description:

I have built master head (commit af43ae7) on linux.

Test case:

// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=COMPLETE | %FileCheck %s
if true {
    print("\(1)")
    let foo = #^COMPLETE^#
}

// CHECK-LABEL: Begin completions
// CHECK: End completions

Assertion failure:

swift-ide-test: /usr/local/google/home/marcrasi/swift-base-master/swift/include/swift/AST/Types.h:2697: swift::AnyFunctionType::Param::Param(swift::Type, swift::Identifier, swift::ParameterTypeFlags): Assertion `!t || !t->is<InOutType>() && "set flags instead"' failed.
Stack dump:
0.  Program arguments: /usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test -target x86_64-unknown-linux-gnu -module-cache-path /usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-gnu/clang-module-cache -completion-cache-path /usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-gnu/completion-cache -swift-version 4 -code-completion -source-filename /usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift -code-completion-token=COMPLETE 
1.  While type-checking statement at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:3:1 - line:6:1] RangeText="if true {
    print("\(1)")
    let foo = 
"
2.  While type-checking statement at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:3:1 - line:6:1] RangeText="if true {
    print("\(1)")
    let foo = 
"
3.  While type-checking statement at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:3:9 - line:6:1] RangeText="{
    print("\(1)")
    let foo = 
"
4.  While type-checking expression at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:4:5 - line:4:17] RangeText="print("\(1)""
5.  While type-checking statement at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:4:11 - line:4:17] RangeText=""\(1)""
6.  While type-checking expression at [/usr/local/google/home/marcrasi/swift-base-master/swift/test/IDE/foo.swift:4:11 - line:4:11] RangeText=""
 #&#8203;0 0x000000000413cb04 PrintStackTraceSignalHandler(void*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x413cb04)
 #&#8203;1 0x000000000413ab30 llvm::sys::RunSignalHandlers() (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x413ab30)
 #&#8203;2 0x000000000413cf08 SignalHandler(int) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x413cf08)
 #&#8203;3 0x00007f7df9af40c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
 #&#8203;4 0x00007f7df7ebcfcf gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x32fcf)
 #&#8203;5 0x00007f7df7ebe3fa abort (/lib/x86_64-linux-gnu/libc.so.6+0x343fa)
 #&#8203;6 0x00007f7df7eb5e37 (/lib/x86_64-linux-gnu/libc.so.6+0x2be37)
 #&#8203;7 0x00007f7df7eb5ee2 (/lib/x86_64-linux-gnu/libc.so.6+0x2bee2)
 #&#8203;8 0x0000000000c5eead swift::constraints::ConstraintSystem::getTypeOfMemberReference(swift::Type, swift::ValueDecl*, swift::DeclContext*, bool, swift::FunctionRefKind, swift::constraints::ConstraintLocatorBuilder, swift::DeclRefExpr const*, llvm::DenseMap<swift::GenericTypeParamType*, swift::TypeVariableType*, llvm::DenseMapInfo<swift::GenericTypeParamType*>, llvm::detail::DenseMapPair<swift::GenericTypeParamType*, swift::TypeVariableType*> >*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xc5eead)
 #&#8203;9 0x0000000000c5fdc1 swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator*, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xc5fdc1)
#&#8203;10 0x0000000000bfc855 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xbfc855)
#&#8203;11 0x0000000000bf6fcb (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xbf6fcb)
#&#8203;12 0x00000000010d5427 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x10d5427)
#&#8203;13 0x00000000010d18bb swift::Expr::walk(swift::ASTWalker&) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x10d18bb)
#&#8203;14 0x0000000000bf25b8 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xbf25b8)
#&#8203;15 0x0000000000c25cdf swift::constraints::ConstraintSystem::solveImpl(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xc25cdf)
#&#8203;16 0x0000000000c258cc swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xc258cc)
#&#8203;17 0x0000000000cb429c swift::TypeChecker::typeCheckExpressionImpl(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener&, swift::constraints::ConstraintSystem*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xcb429c)
#&#8203;18 0x0000000000cb3ed2 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xcb3ed2)
#&#8203;19 0x0000000000d48f6a swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48f6a)
#&#8203;20 0x0000000000d48147 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48147)
#&#8203;21 0x0000000000d48067 swift::TypeChecker::typeCheckTapBody(swift::TapExpr*, swift::DeclContext*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48067)
#&#8203;22 0x0000000000d6add0 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd6add0)
#&#8203;23 0x0000000000cb433d swift::TypeChecker::typeCheckExpressionImpl(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener&, swift::constraints::ConstraintSystem*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xcb433d)
#&#8203;24 0x0000000000cb3ed2 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xcb3ed2)
#&#8203;25 0x0000000000d48f6a swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48f6a)
#&#8203;26 0x0000000000d4c2c7 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::Stmt>(swift::Stmt*&) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd4c2c7)
#&#8203;27 0x0000000000d49627 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd49627)
#&#8203;28 0x0000000000d4c2c7 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::Stmt>(swift::Stmt*&) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd4c2c7)
#&#8203;29 0x0000000000d48e37 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48e37)
#&#8203;30 0x0000000000d48147 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48147)
#&#8203;31 0x0000000000d48252 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd48252)
#&#8203;32 0x0000000000d6839f swift::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xd6839f)
#&#8203;33 0x000000000055ae2a (anonymous namespace)::CodeCompletionCallbacksImpl::doneParsing() (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x55ae2a)
#&#8203;34 0x0000000000fd593d swift::performDelayedParsing(swift::DeclContext*, swift::PersistentParserState&, swift::CodeCompletionCallbacksFactory*) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0xfd593d)
#&#8203;35 0x0000000000538341 swift::CompilerInstance::parseAndCheckTypesUpTo(swift::CompilerInstance::ImplicitImports const&, swift::SourceFile::ASTStage_t) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x538341)
#&#8203;36 0x00000000005376f9 swift::CompilerInstance::performSemaUpTo(swift::SourceFile::ASTStage_t) (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x5376f9)
#&#8203;37 0x00000000004abc25 main (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x4abc25)
#&#8203;38 0x00007f7df7eaa2b1 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#&#8203;39 0x00000000004a3eaa _start (/usr/local/google/home/marcrasi/swift-base-master/build/buildbot_linux/swift-linux-x86_64/bin/swift-ide-test+0x4a3eaa)

I have a PR into the `tensorflow` branch that fixes it: #22767

I plan to create a PR into the `master` branch in a few days when I have time, so I'm filing this bug to keep track of it.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@AnthonyLatsis AnthonyLatsis added crash Bug: A crash, i.e., an abnormal termination of software compiler The Swift compiler in itself labels Dec 12, 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 compiler The Swift compiler in itself crash Bug: A crash, i.e., an abnormal termination of software source tooling Area: IDE support, SourceKit, and other source tooling
Projects
None yet
Development

No branches or pull requests

1 participant