Skip to content

Instantly share code, notes, and snippets.

@rnewman
Last active August 29, 2015 14:18
Show Gist options
  • Save rnewman/541a558f143cc64d232f to your computer and use it in GitHub Desktop.
Save rnewman/541a558f143cc64d232f to your computer and use it in GitHub Desktop.
Swift 1.2 compiler stacktrace
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