swift
swift copied to clipboard
Key path assertion failure
Description
I'm hitting a compiler assertion failure on code that should be correct.
Reproduction
- Clone https://github.com/pointfreeco/swift-case-paths
- Check out the
swift-issue-74433branch - Compile with a toolchain that has debug assertions enabled
- Note that the following lines trigger an assertion:
https://github.com/pointfreeco/swift-case-paths/blob/swift-issue-74433/Sources/CasePaths/Optional%2BCasePathable.swift#L7-L8
Stack dump
Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\Users\swift-ci\jenkins\workspace\swift-6.0-windows-toolchain\llvm-project\llvm\include\llvm/Support/Casting.h, line 578
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: C:/Users/runneradmin/AppData/Local/Programs/Swift/Toolchains/6.0.0+Asserts/usr/bin/swift-frontend.exe -frontend -c D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\AnyCasePath.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\CasePathable.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\EnumReflection.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Internal\\Deprecations.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Internal\\LockIsolated.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Internal\\OpenExistential.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Internal\\TypeName.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Internal\\UncheckedSendable.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Macros.swift D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Never+CasePathable.swift -primary-file D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Optional+CasePathable.swift -primary-file D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\Result+CasePathable.swift -primary-file D:\\a\\swift-case-paths\\swift-case-paths\\Sources\\CasePaths\\XCTestSupport.swift -supplementary-output-file-map C:\\Users\\runneradmin\\AppData\\Local\\Temp\\TemporaryDirectory.4NJd7s\\supplementaryOutputs-4 -target x86_64-unknown-windows-msvc -disable-objc-interop -sdk C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Platforms\\6.0.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk -I D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules -I C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Platforms\\6.0.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows -I C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Platforms\\6.0.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64 -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\ModuleCache -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -load-plugin-executable D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\CasePathsMacros.exe#CasePathsMacros -empty-abi-descriptor -resource-dir C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.0.0+Asserts\\usr\\lib\\swift -enable-anonymous-context-mangled-names -file-compilation-dir D:\\a\\swift-case-paths\\swift-case-paths -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -module-name CasePaths -package-name swift_case_paths -plugin-path C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.0.0+Asserts\\usr\\bin -plugin-path C:\\Users\\runneradmin\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.0.0+Asserts\\usr\\local\\bin -parse-as-library -o D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\CasePaths.build\\Optional+CasePathable.swift.o -o D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\CasePaths.build\\Result+CasePathable.swift.o -o D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\CasePaths.build\\XCTestSupport.swift.o -index-store-path D:\\a\\swift-case-paths\\swift-case-paths\\.build\\x86_64-unknown-windows-msvc\\debug\\index\\store -index-system-modules
1. Swift version 6.0-dev (LLVM e878388283d7b73, Swift eb92e6e50035d21)
2. Compiling with the current language version
3. While evaluating request TypeCheckSourceFileRequest(source_file "D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift")
4. While evaluating request TypeCheckFunctionBodyRequest(CasePaths.(file).Optional extension.AllCasePaths._@D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:5:70)
5. While type-checking statement at [D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:5:70 - line:10:5] RangeText="{
switch root {
case .none: return \.none
case .some: return \.some
}
"
6. While type-checking statement at [D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:6:7 - line:9:7] RangeText="switch root {
case .none: return \.none
case .some: return \.some
"
7. While type-checking statement at [D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:7:19 - line:7:42] RangeText="return \Optional.Cases."
8. While type-checking statement at [D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:7:19 - line:7:42] RangeText="return \Optional.Cases."
9. While type-checking-target starting at D:\a\swift-case-paths\swift-case-paths\Sources\CasePaths\Optional+CasePathable.swift:7:26
Exception Code: 0x80000003
#0 0x00007ff7b693e615 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x604e615)
#1 0x00007fff3782bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
#2 0x00007fff3782cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
#3 0x00007fff3782e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
#4 0x00007fff3782e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
#5 0x00007ff7b14b6dc7 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0xbc6dc7)
#6 0x00007ff7b21740ce (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x18840ce)
#7 0x00007ff7b2194312 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x18a4312)
#8 0x00007ff7b2190e38 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x18a0e38)
#9 0x00007ff7b2198289 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x18a8289)
#10 0x00007ff7b2642078 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1d52078)
#11 0x00007ff7b2642702 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1d52702)
#12 0x00007ff7b26473f6 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1d573f6)
#13 0x00007ff7b218d7cd (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x189d7cd)
#14 0x00007ff7b216dc0b (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x187dc0b)
#15 0x00007ff7b20a0e48 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x17b0e48)
#16 0x00007ff7b1f80eb9 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1690eb9)
#17 0x00007ff7b1f75693 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1685693)
#18 0x00007ff7b1f7f016 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x168f016)
#19 0x00007ff7b1f8037d (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x169037d)
#20 0x00007ff7b1f75563 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1685563)
#21 0x00007ff7b1f72982 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1682982)
#22 0x00007ff7b1f8117d (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x169117d)
#23 0x00007ff7b1f75693 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1685693)
#24 0x00007ff7b1f7f016 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x168f016)
#25 0x00007ff7b1f8037d (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x169037d)
#26 0x00007ff7b1f75563 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1685563)
#27 0x00007ff7b1f7b684 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x168b684)
#28 0x00007ff7b251b6e7 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1c2b6e7)
#29 0x00007ff7b24cdc96 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1bddc96)
#30 0x00007ff7b2562018 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1c72018)
#31 0x00007ff7b2448da1 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1b58da1)
#32 0x00007ff7b1e3c352 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x154c352)
#33 0x00007ff7b1e1e94a (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x152e94a)
#34 0x00007ff7b1e38773 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1548773)
#35 0x00007ff7b1e3fab8 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x154fab8)
#36 0x00007ff7b0ebf30c (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x5cf30c)
#37 0x00007ff7b0ec66fe (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x5d66fe)
#38 0x00007ff7b0eca9f5 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x5da9f5)
#39 0x00007ff7b0c5fbea (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x36fbea)
#40 0x00007ff7b0c601ae (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x3701ae)
#41 0x00007ff7b0c626f0 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x3726f0)
#42 0x00007ff7b0ab7fd1 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1c7fd1)
#43 0x00007ff7b0ab7aaf (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x1c7aaf)
#44 0x00007ff7b699c378 (C:\Users\runneradmin\AppData\Local\Programs\Swift\Toolchains\6.0.0+Asserts\usr\bin\swift-frontend.exe+0x60ac378)
#45 0x00007fff392e4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
#46 0x00007fff3a13e8ab (C:\Windows\SYSTEM32\ntdll.dll+0x7e8ab)
Expected behavior
I expect the code to compile.
Environment
Windows 6.0-DEVELOPMENT-SNAPSHOT-2024-06-03-a
Additional information
No response
@stephencelis I cannot reproduce this with the latest 6.0 snapshot or main.
There is another assertion with 07/24 points to SILGen, I asked @jckarter to take a look.