Swift switch statement using tuples of enums with associated values fails

Originator:lee.gillen
Number:rdar://30422712 Date Originated:02/08/2017
Status:Closed Resolved:Xcode 9 (9M137d)
Product:Xcode Product Version:8.2.1
Classification:Serious Bug Reproducible:Always
 
Summary:
I have a swift class used to define a state machine. This swift class has a switch using a tuple of enums with associated values. This switch results in an odd error "Command failed due to signal: Segmentation fault: 11" (see below for the logs).

Steps to Reproduce:
1. Use Xcode 8.2.1.
2. Open the SILlyCompile project I have attached
3. Compile it and note that it compiles
4. Uncomment lines as noted in the MyClass.swift file
5. Comple and note it fails with the error described

Expected Results:
It should compile.

Actual Results:
Command failed due to signal: Segmentation fault: 11

Compile logs:
CompileSwift normal x86_64 /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift
    cd /Users/sgillen/Desktop/SILlyCompile
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/ViewController.swift /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/AppDelegate.swift -primary-file /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift -target x86_64-apple-ios10.2 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk -I /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -F /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/sgillen/Library/Developer/Xcode/DerivedData/ModuleCache -D DEBUG -serialize-debugging-options -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-generated-files.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-own-target-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-all-target-headers.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-project-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources/x86_64 -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/sgillen/Desktop/SILlyCompile -emit-module-doc-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftdoc -Onone -module-name SILlyCompile -emit-module-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftmodule -serialize-diagnostics-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.dia -emit-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.d -emit-reference-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.swiftdeps -o /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.o

0  swift                    0x0000000105ca13ad PrintStackTraceSignalHandler(void*) + 45
1  swift                    0x0000000105ca0b56 SignalHandler(int) + 790
2  libsystem_platform.dylib 0x00007fff8c07352a _sigtramp + 26
3  libsystem_platform.dylib 0x0000000100000000 _sigtramp + 1945684720
4  swift                    0x00000001036f981e swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 222
5  swift                    0x00000001036f97ab swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 107
6  swift                    0x00000001036f97ab swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 107
7  swift                    0x0000000102f13af7 (anonymous namespace)::PatternMatchEmission::getSharedCaseBlockDest(swift::CaseStmt*, bool) + 903
8  swift                    0x0000000102f095e3 void llvm::function_ref<void ((anonymous namespace)::PatternMatchEmission&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, (anonymous namespace)::ClauseRow&)>::callback_fn<swift::Lowering::SILGenFunction::emitSwitchStmt(swift::SwitchStmt*)::$_1>(long, (anonymous namespace)::PatternMatchEmission&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, (anonymous namespace)::ClauseRow&) + 291
9  swift                    0x0000000102f0ed8a (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 20666
10 swift                    0x0000000102f1313d std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3421
11 swift                    0x0000000102f0c252 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 9602
12 swift                    0x0000000102f1313d std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3421
13 swift                    0x0000000102f0e8e8 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 19480
14 swift                    0x0000000102f1313d std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3421
15 swift                    0x0000000102f0e8e8 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 19480
16 swift                    0x0000000102f1313d std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3421
17 swift                    0x0000000102f0c252 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 9602
18 swift                    0x0000000102f08e09 swift::Lowering::SILGenFunction::emitSwitchStmt(swift::SwitchStmt*) + 2537
19 swift                    0x0000000102f2b6d6 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 4022
20 swift                    0x0000000102eebe1a swift::Lowering::SILGenFunction::emitFunction(swift::FuncDecl*) + 314
21 swift                    0x0000000102e68055 swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*)::$_1::operator()(swift::SILFunction*) const + 1877
22 swift                    0x0000000102e66c02 swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*) + 626
23 swift                    0x0000000102f32777 (anonymous namespace)::SILGenType::emitType() + 1271
24 swift                    0x0000000102f3220e swift::Lowering::SILGenModule::visitNominalTypeDecl(swift::NominalTypeDecl*) + 30
25 swift                    0x0000000102e73973 swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, unsigned int) + 1795
26 swift                    0x0000000102e7562d swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) + 1629
27 swift                    0x0000000102cade86 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) + 19510
28 swift                    0x0000000102ca72b3 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 17859
29 swift                    0x0000000102c635cf main + 8239
30 libdyld.dylib            0x00007fff952975ad start + 1
31 libdyld.dylib            0x000000000000003e start + 1792445074
Stack dump:
0.	Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/ViewController.swift /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/AppDelegate.swift -primary-file /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift -target x86_64-apple-ios10.2 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk -I /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -F /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/sgillen/Library/Developer/Xcode/DerivedData/ModuleCache -D DEBUG -serialize-debugging-options -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-generated-files.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-own-target-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-all-target-headers.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-project-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources/x86_64 -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/sgillen/Desktop/SILlyCompile -emit-module-doc-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftdoc -Onone -module-name SILlyCompile -emit-module-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftmodule -serialize-diagnostics-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.dia -emit-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.d -emit-reference-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.swiftdeps -o /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.o 
1.	While emitting SIL for 'updateMyState' at /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift:29:5


Version:
Xcode 8.2.1 on OS X 10.11.6 (15G1212).

Notes:


Configuration:


Attachments:
'SILlyCompile.zip' was successfully uploaded.

Code:
//
//  MyClass.swift
//  SILlyCompile
//
//  Created by Stewart Gillen on 2/8/17.
//  Copyright © 2017 Stewart Gillen. All rights reserved.
//

import UIKit

class MyClass: NSObject {
    
    enum MyState {
        
        enum Status {
            case reserved
            case tentative
            case blocked
        }
        
        case none
        case begin(status: Status)
        case middle(status: Status)
        case end(status: Status)
    }
    
    var myState = MyState.none
    
    func updateMyState(newState: MyState) {
        
        // I have copied the same switch statement 5 times below. The only changes are different lines commented out.
        // The uncommented lines compile fine, but not when they are are combiled together.
        
        switch (self.myState, newState) {
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
//        case (.none, _):
//            self.myState = newState
        case (.begin(let beginStatus), .middle(let middleStatus)):
            self.myState = .middle(status: middleStatus)
            mergeState(.begin(status: beginStatus))
        case (.middle, .begin(let beginStatus)),
             (.begin, .begin(let beginStatus)):
            mergeState(.begin(status: beginStatus))
        default:
            break;
        }
        
        switch (self.myState, newState) {
        case (.none, _):
            self.myState = newState
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
//        case (.begin(let beginStatus), .middle(let middleStatus)):
//            self.myState = .middle(status: middleStatus)
//            mergeState(.begin(status: beginStatus))
        case (.middle, .begin(let beginStatus)),
             (.begin, .begin(let beginStatus)):
            mergeState(.begin(status: beginStatus))
        default:
            break;
        }
        
        switch (self.myState, newState) {
        case (.none, _):
            self.myState = newState
        case (.begin(let beginStatus), .middle(let middleStatus)):
            self.myState = .middle(status: middleStatus)
            mergeState(.begin(status: beginStatus))
        case
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
//             (.middle, .begin(let beginStatus))
//             ,
             (.begin, .begin(let beginStatus))
             :
            mergeState(.begin(status: beginStatus))
        default:
            break;
        }

        
        switch (self.myState, newState) {
        case (.none, _):
            self.myState = newState
        // UNCOMMENT THIS AND THE CODE COMPILE FAILS
        case (.begin(let beginStatus), .middle(let middleStatus)):
            self.myState = .middle(status: middleStatus)
            mergeState(.begin(status: beginStatus))
        case
             (.middle, .begin(let beginStatus))
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
//             ,
//             (.begin, .begin(let beginStatus))
             :
            mergeState(.begin(status: beginStatus))
        default:
            break;
        }
        
        // WORK AROUND: breaking up the last case also compiles SUCCESSFULLY
        
        switch (self.myState, newState) {
        case (.none, _):
            self.myState = newState
        case (.begin(let beginStatus), .middle(let middleStatus)):
            self.myState = .middle(status: middleStatus)
            mergeState(.begin(status: beginStatus))
        // these two cases below were one case statement in the above switches
        case (.middle, .begin(let beginStatus)):
            mergeState(.begin(status: beginStatus))
        case (.begin, .begin(let beginStatus)):
            mergeState(.begin(status: beginStatus))
        default:
            break;
        }
    }
    
    func mergeState(_ newState: MyState) {
        // someday something awesome
    }
}

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!