Open hamishknight opened 5 years ago
Issue Description:
The following crashes the AST verifier:
import Foundation class C { @objc func foo() -> String! { return nil } } func bar(_ x: AnyObject) { let y: String = x.foo!() }
Stack dump:
0. Program arguments: ./swift -frontend -typecheck /Users/hamishknight/Desktop/Stochastic Projects/hang on a gosh darn sec/hang on a gosh darn sec/main.swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk 1. While walking into decl 'bar(_:)' (at /Users/hamishknight/Desktop/Stochastic Projects/hang on a gosh darn sec/hang on a gosh darn sec/main.swift:15:1) 2. While walking into body of 'bar(_:)' (at /Users/hamishknight/Desktop/Stochastic Projects/hang on a gosh darn sec/hang on a gosh darn sec/main.swift:15:1) 3. While walking into initializer for declaration 0x7fb5288cfb00 (at /Users/hamishknight/Desktop/Stochastic Projects/hang on a gosh darn sec/hang on a gosh darn sec/main.swift:16:3) 0 swift 0x0000000112eaa585 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37 1 swift 0x0000000112ea9588 llvm::sys::RunSignalHandlers() + 248 2 swift 0x0000000112eaab88 SignalHandler(int) + 264 3 libsystem_platform.dylib 0x00007fff61b98b5d _sigtramp + 29 4 libsystem_platform.dylib 000000000000000000 _sigtramp + 2655417536 5 swift 0x000000010fe3d789 (anonymous namespace)::Verifier::checkSameType(swift::Type, swift::Type, char const*) + 41 6 swift 0x000000010fe3f0e1 (anonymous namespace)::Verifier::checkOptionalObjectType(swift::Type, swift::Type, swift::Expr*) + 81 7 swift 0x000000010fe332f8 (anonymous namespace)::Verifier::walkToExprPost(swift::Expr*) + 13656 8 swift 0x000000010fe4657b (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) + 123 9 swift 0x000000010fe487c0 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Decl*) + 752 10 swift 0x000000010fe43af7 (anonymous namespace)::Traversal::doIt(swift::Decl*) + 215 11 swift 0x000000010fe468c8 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Stmt*) + 472 12 swift 0x000000010fe4983e (anonymous namespace)::Traversal::visitAbstractFunctionDecl(swift::AbstractFunctionDecl*) + 782 13 swift 0x000000010fe43af7 (anonymous namespace)::Traversal::doIt(swift::Decl*) + 215 14 swift 0x000000010fe43a0b swift::Decl::walk(swift::ASTWalker&) + 27 15 swift 0x000000010fef9f1a swift::SourceFile::walk(swift::ASTWalker&) + 170 16 swift 0x000000010fe2ef4b swift::verify(swift::SourceFile&) + 59 17 swift 0x000000010fbe6425 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 1381 18 swift 0x000000010f3708f6 swift::CompilerInstance::parseAndTypeCheckMainFileUpTo(swift::SourceFile::ASTStage_t, swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) + 502 19 swift 0x000000010f36f403 swift::CompilerInstance::parseAndCheckTypesUpTo(swift::CompilerInstance::ImplicitImports const&, swift::SourceFile::ASTStage_t) + 339 20 swift 0x000000010f36ebf7 swift::CompilerInstance::performSemaUpTo(swift::SourceFile::ASTStage_t) + 615 21 swift 0x000000010f13c2dd performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 1613 22 swift 0x000000010f13ac36 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2982 23 swift 0x000000010f0e1b08 main + 696 24 libdyld.dylib 0x00007fff619b33d5 start + 1 fish: './swift -frontend -typecheck /U…' terminated by signal SIGSEGV (Address boundary error)
Here's hoping we can deprecate AnyObject lookup soon
Environment
Swift version 5.0-dev (LLVM 94d957ca75, Swift 130cd9e81f) Target: x86_64-apple-darwin18.5.0Additional Detail from JIRA
| | | |------------------|-----------------| |Votes | 0 | |Component/s | Compiler | |Labels | Bug, CompilerCrash, TypeChecker | |Assignee | None | |Priority | Medium | md5: ce4521d5f7dccd1e87ea948b15e07401Issue Description:
The following crashes the AST verifier:
Stack dump: