Last active
August 29, 2015 14:18
-
-
Save rnewman/541a558f143cc64d232f to your computer and use it in GitHub Desktop.
Swift 1.2 compiler stacktrace
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is the code in question: | |
--- | |
public func stringArrayForKey(defaultName: String) -> [String]? { | |
if let arr = self.arrayForKey(defaultName) as? [String]? { | |
return arr | |
} | |
return nil | |
} | |
public func arrayForKey(defaultName: String) -> [AnyObject]? { | |
let r: AnyObject? = things.objectForKey(defaultName) | |
if (r == nil) { | |
return nil | |
} | |
if let arr = r as? [AnyObject] { | |
return arr | |
} | |
return nil | |
} | |
--- | |
Rephrasing as: | |
--- | |
public func stringArrayForKey(defaultName: String) -> [String]? { | |
if let arr = self.arrayForKey(defaultName) { | |
if let arr = arr as? [String] { | |
return arr | |
} | |
} | |
return nil | |
} | |
--- | |
makes the problem go away. | |
Build output: | |
CompileSwift normal arm64 /Users/rnewman/moz/git/firefox-ios/Utils/Prefs.swift | |
cd /Users/rnewman/moz/git/firefox-ios | |
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/rnewman/moz/git/firefox-ios/Utils/ColorUtils.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/ReadWriteLock.swift /Users/rnewman/moz/git/firefox-ios/Utils/KeyboardHelper.swift /Users/rnewman/moz/git/firefox-ios/Utils/Functions.swift /Users/rnewman/moz/git/firefox-ios/Utils/ScannerExtensions.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/Box.swift /Users/rnewman/moz/git/firefox-ios/Utils/TimeConstants.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/json.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/BoxType.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/SwiftKeychainWrapper/KeychainWrapper.swift /Users/rnewman/moz/git/firefox-ios/Utils/Bytes.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/LockProtected.swift /Users/rnewman/moz/git/firefox-ios/Utils/HashExtensions.swift -primary-file /Users/rnewman/moz/git/firefox-ios/Utils/Prefs.swift /Users/rnewman/moz/git/firefox-ios/Utils/StringExtensions.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/Deferred.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Result/Error.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Result/Result.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/MutableBox.swift /Users/rnewman/moz/git/firefox-ios/Utils/HexExtensions.swift -target arm64-apple-ios8.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk -I /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos -I /Users/rnewman/moz/git/firefox-ios/Storage/modules -F /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos -application-extension -g -import-objc-header /Users/rnewman/moz/git/firefox-ios/Shared/Shared-Bridging-Header.h -module-cache-path /Users/rnewman/Library/Developer/Xcode/DerivedData/ModuleCache -D MOZ_CHANNEL_DEBUG -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-generated-files.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-own-target-headers.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-project-headers.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos/include -Xcc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -Xcc -I/Users/rnewman/moz/git/firefox-ios/ThirdParty/fmdb/src/fmdb -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/DerivedSources/arm64 -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DDEBUG=1 -Xcc -working-directory/Users/rnewman/moz/git/firefox-ios -emit-module-doc-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs~partial.swiftdoc -Onone -module-name Shared -emit-module-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs~partial.swiftmodule -serialize-diagnostics-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.dia -emit-dependencies-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.d -emit-reference-dependencies-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.swiftdeps -o /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.o | |
0 swift 0x000000010fab3a08 llvm::sys::PrintStackTrace(__sFILE*) + 40 | |
1 swift 0x000000010fab3ee4 SignalHandler(int) + 452 | |
2 libsystem_platform.dylib 0x00007fff9722ef1a _sigtramp + 26 | |
3 libsystem_platform.dylib 0x00007f82f99b4200 _sigtramp + 1652052736 | |
4 swift 0x000000010f4769bd swift::irgen::IRGenModule::emitSILFunction(swift::SILFunction*) + 9901 | |
5 swift 0x000000010f3e154f swift::irgen::IRGenModule::emitGlobalTopLevel() + 159 | |
6 swift 0x000000010f461279 performIRGeneration(swift::IRGenOptions&, swift::Module*, swift::SILModule*, llvm::StringRef, llvm::LLVMContext&, swift::SourceFile*, unsigned int) + 2121 | |
7 swift 0x000000010f461cb3 swift::performIRGeneration(swift::IRGenOptions&, swift::SourceFile&, swift::SILModule*, llvm::StringRef, llvm::LLVMContext&, unsigned int) + 51 | |
8 swift 0x000000010f39d687 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 6647 | |
9 swift 0x000000010f39bae6 main + 1814 | |
10 libdyld.dylib 0x00007fff8b1845c9 start + 1 | |
11 libdyld.dylib 0x000000000000005e start + 1961343638 | |
Stack dump: | |
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/rnewman/moz/git/firefox-ios/Utils/ColorUtils.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/ReadWriteLock.swift /Users/rnewman/moz/git/firefox-ios/Utils/KeyboardHelper.swift /Users/rnewman/moz/git/firefox-ios/Utils/Functions.swift /Users/rnewman/moz/git/firefox-ios/Utils/ScannerExtensions.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/Box.swift /Users/rnewman/moz/git/firefox-ios/Utils/TimeConstants.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/json.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/BoxType.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/SwiftKeychainWrapper/KeychainWrapper.swift /Users/rnewman/moz/git/firefox-ios/Utils/Bytes.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/LockProtected.swift /Users/rnewman/moz/git/firefox-ios/Utils/HashExtensions.swift -primary-file /Users/rnewman/moz/git/firefox-ios/Utils/Prefs.swift /Users/rnewman/moz/git/firefox-ios/Utils/StringExtensions.swift /Users/rnewman/moz/git/firefox-ios/Carthage/Checkouts/Deferred/Deferred/Deferred.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Result/Error.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Result/Result.swift /Users/rnewman/moz/git/firefox-ios/ThirdParty/Box/MutableBox.swift /Users/rnewman/moz/git/firefox-ios/Utils/HexExtensions.swift -target arm64-apple-ios8.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk -I /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos -I /Users/rnewman/moz/git/firefox-ios/Storage/modules -F /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos -application-extension -g -import-objc-header /Users/rnewman/moz/git/firefox-ios/Shared/Shared-Bridging-Header.h -module-cache-path /Users/rnewman/Library/Developer/Xcode/DerivedData/ModuleCache -D MOZ_CHANNEL_DEBUG -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-generated-files.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-own-target-headers.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Shared-project-headers.hmap -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Products/Debug-iphoneos/include -Xcc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -Xcc -I/Users/rnewman/moz/git/firefox-ios/ThirdParty/fmdb/src/fmdb -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/DerivedSources/arm64 -Xcc -I/Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DDEBUG=1 -Xcc -working-directory/Users/rnewman/moz/git/firefox-ios -emit-module-doc-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs~partial.swiftdoc -Onone -module-name Shared -emit-module-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs~partial.swiftmodule -serialize-diagnostics-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.dia -emit-dependencies-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.d -emit-reference-dependencies-path /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.swiftdeps -o /Users/rnewman/Library/Developer/Xcode/DerivedData/Client-fhgufntxvuxtwfbmkckrmnagytst/Build/Intermediates/Client.build/Debug-iphoneos/Shared.build/Objects-normal/arm64/Prefs.o | |
1. While emitting IR SIL function @_TFC6Shared16MockProfilePrefs17stringArrayForKeyfS0_FSSGSqGSaSS__ for 'stringArrayForKey' at /Users/rnewman/moz/git/firefox-ios/Utils/Prefs.swift:100:12 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment