Skip to content

[cxx-interop] Frontend crash when extending a specialized generic type inside a swift module #81430

@costinAndronache

Description

@costinAndronache

Description

When extending a C++ specialized generic type in Swift it crashes with an an assertion:

Assertion failed: !T->isDependentType() && "should not see dependent types here", file T:\5\tools\clang\include\clang/AST/TypeNodes.inc, line 78

Seems to happen only if the type includes at least a member value of the generic 'T' type.
Does not crash on an empty generic type.

swiftCxxCrash_extensionOnSpecializedGenericTypes.zip

Reproduction

#pragma once

struct Foo {
    int value;
};

template<typename T>
struct GenericFoo {
    T value;
};

template<>
struct GenericFoo<int>;

typedef GenericFoo<int> FooInt;
import CxxLib

extension Foo { } // OK 

extension FooInt { } // Crashes

Stack dump

Planning build
Building for debugging...
Write auxiliary file E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swift-version--419FB1E48B690C4E.txt
E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swiftc.exe -module-name swiftCxxCrash -emit-dependencies -emit-module -emit-module-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules\swiftCxxCrash.swiftmodule -output-file-map E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\output-file-map.json -parse-as-library -incremental -c @E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\sources -I E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules -target x86_64-unknown-windows-msvc -v -enable-batch-mode -index-store-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\index\store -Onone -enable-testing -j12 -DSWIFT_PACKAGE -DDEBUG -Xcc -fmodule-map-file=E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\CxxLib.build\module.modulemap -Xcc -I -Xcc E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include -module-cache-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\ModuleCache -parseable-output -parse-as-library -static -swift-version 6 -cxx-interoperability-mode=default -sdk E:\swift\Platforms\6.1.0\Windows.platform\Developer\SDKs\Windows.sdk\ -libc MD -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -L E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows -L E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows\x86_64 -use-ld=lld -g -use-ld=lld -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -package-name swiftcxxcrash_extensiononspecializedgenerictype
Swift version 6.1 (swift-6.1-RELEASE)
Target: x86_64-unknown-windows-msvc
E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk E:\swift\Platforms\6.1.0\Windows.platform\Developer\SDKs\Windows.sdk\ -I E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\ModuleCache -static -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -empty-abi-descriptor -resource-dir E:\swift\Toolchains\6.1.0+Asserts\usr\lib\swift -enable-anonymous-context-mangled-names -file-compilation-dir E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType -Xcc -fmodule-map-file=E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\CxxLib.build\module.modulemap -Xcc -I -Xcc E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -module-name swiftCxxCrash -package-name swiftcxxcrash_extensiononspecializedgenerictype -in-process-plugin-server-path E:\swift\Toolchains\6.1.0+Asserts\usr\bin\SwiftInProcPluginServer.dll -plugin-path E:\swift\Toolchains\6.1.0+Asserts\usr\bin -plugin-path E:\swift\Toolchains\6.1.0+Asserts\usr\local\bin -emit-module-doc-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules\swiftCxxCrash.swiftdoc -emit-module-source-info-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules\swiftCxxCrash.swiftsourceinfo -emit-dependencies-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\swiftCxxCrash.emit-module.d -parse-as-library -o E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules\swiftCxxCrash.swiftmodule
E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe -frontend -c -primary-file E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift -emit-dependencies-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\swiftCxxCrash.d -emit-reference-dependencies-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\swiftCxxCrash.swiftdeps -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk E:\swift\Platforms\6.1.0\Windows.platform\Developer\SDKs\Windows.sdk\ -I E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\Modules -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -I E:\swift\Platforms\6.1.0\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\ModuleCache -static -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -empty-abi-descriptor -resource-dir E:\swift\Toolchains\6.1.0+Asserts\usr\lib\swift -enable-anonymous-context-mangled-names -file-compilation-dir E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType -Xcc -fmodule-map-file=E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\CxxLib.build\module.modulemap -Xcc -I -Xcc E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -module-name swiftCxxCrash -package-name swiftcxxcrash_extensiononspecializedgenerictype -in-process-plugin-server-path E:\swift\Toolchains\6.1.0+Asserts\usr\bin\SwiftInProcPluginServer.dll -plugin-path E:\swift\Toolchains\6.1.0+Asserts\usr\bin -plugin-path E:\swift\Toolchains\6.1.0+Asserts\usr\local\bin -parse-as-library -o E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\swiftCxxCrash.build\swiftCxxCrash.swift.o -index-store-path E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\.build\x86_64-unknown-windows-msvc\debug\index\store -index-system-modules
error: emit-module command failed due to exception 3 (use -v to see invocation)
Assertion failed: !T->isDependentType() && "should not see dependent types here", file T:\5\tools\clang\include\clang/AST/TypeNodes.inc, line 78

Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.

Stack dump:

0.	Program arguments: E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin\\swift-frontend.exe -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\Sources\\swiftCxxCrash\\swiftCxxCrash.swift -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk\\ -I E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64 -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\Testing-development\\usr\\lib\\swift\\windows -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\ModuleCache -static -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -empty-abi-descriptor -resource-dir E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\lib\\swift -enable-anonymous-context-mangled-names -file-compilation-dir E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType -Xcc -fmodule-map-file=E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\CxxLib.build\\module.modulemap -Xcc -I -Xcc E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\Sources\\CxxLib\\include -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -module-name swiftCxxCrash -package-name swiftcxxcrash_extensiononspecializedgenerictype -in-process-plugin-server-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin\\SwiftInProcPluginServer.dll -plugin-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin -plugin-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\local\\bin -emit-module-doc-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules\\swiftCxxCrash.swiftdoc -emit-module-source-info-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules\\swiftCxxCrash.swiftsourceinfo -emit-dependencies-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\swiftCxxCrash.build\\swiftCxxCrash.emit-module.d -parse-as-library -o E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules\\swiftCxxCrash.swiftmodule

1.	Swift version 6.1 (swift-6.1-RELEASE)

2.	Compiling with the current language version

3.	While evaluating request ExtendedNominalRequest(extension of FooInt@E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift:8:1)

4.	While evaluating request UnqualifiedLookupRequest(looking up 'FooInt' from 0x2911d0a3590 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift" with options { AllowProtocolMembers, TypeLookup })

5.	While evaluating request LookupInModuleRequest(0x2911d0a3590 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift", 'FooInt', UnqualifiedLookup, TypesOnly, 0x2911d0a3590 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift", { NL_RemoveNonVisible, NL_RemoveOverridden })

6.	E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:15:25: importing 'FooInt'

7.	While importing a clang type ElaboratedType 0x2911d119850 'GenericFoo<int>' sugar imported

`-TemplateSpecializationType 0x2911d119800 'GenericFoo<int>' sugar imported

  |-name: 'GenericFoo' qualified

  | `-ClassTemplateDecl 0x2911d119240 <E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:7:1, line:10:1> line:8:8 imported in CxxLib GenericFoo

  |-TemplateArgument type 'int'

  | `-BuiltinType 0x29119c0c700 'int'

  `-RecordType 0x2911d1197e0 'GenericFoo<int>' imported

    `-ClassTemplateSpecialization 0x2911d119668 'GenericFoo'

8.	While importing a clang type TemplateSpecializationType 0x2911d119800 'GenericFoo<int>' sugar imported

|-name: 'GenericFoo' qualified

| `-ClassTemplateDecl 0x2911d119240 <E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:7:1, line:10:1> line:8:8 imported in CxxLib GenericFoo

|-TemplateArgument type 'int'

| `-BuiltinType 0x29119c0c700 'int'

`-RecordType 0x2911d1197e0 'GenericFoo<int>' imported

  `-ClassTemplateSpecialization 0x2911d119668 'GenericFoo'

9.	While importing a clang type RecordType 0x2911d1197e0 'GenericFoo<int>' imported

`-ClassTemplateSpecialization 0x2911d119668 'GenericFoo'

10.	E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:8:8: importing 'GenericFoo'

Exception Code: 0x80000003

 #0 0x00007ff7be1676b5 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x69e76b5)

 #1 0x00007ff825821881 (C:\Windows\System32\ucrtbase.dll+0x71881)

 #2 0x00007ff825822851 (C:\Windows\System32\ucrtbase.dll+0x72851)

 #3 0x00007ff8258241b5 (C:\Windows\System32\ucrtbase.dll+0x741b5)

 #4 0x00007ff8258244f1 (C:\Windows\System32\ucrtbase.dll+0x744f1)

 #5 0x00007ff7bccd5b2a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5555b2a)

 #6 0x00007ff7bccd56ed (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55556ed)

 #7 0x00007ff7bccd7299 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5557299)

 #8 0x00007ff7bcd75391 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f5391)

 #9 0x00007ff7bcd7704e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f704e)

#10 0x00007ff7bcd77403 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f7403)

#11 0x00007ff7bcd7450c (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f450c)

#12 0x00007ff7bcd74a24 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f4a24)

#13 0x00007ff7bccd6546 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5556546)

#14 0x00007ff7bccd56ed (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55556ed)

#15 0x00007ff7bccd542f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x555542f)

#16 0x00007ff7b94c9b1e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d49b1e)

#17 0x00007ff7b94c9aa6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d49aa6)

#18 0x00007ff7b94e375e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d6375e)

#19 0x00007ff7b94dcde6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d5cde6)

#20 0x00007ff7b94ddbbb (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d5dbbb)

#21 0x00007ff7b94f886e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d7886e)

#22 0x00007ff7b94f7622 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d77622)

#23 0x00007ff7b94bc98b (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c98b)

#24 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#25 0x00007ff7b94bc724 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c724)

#26 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#27 0x00007ff7b94bc724 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c724)

#28 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#29 0x00007ff7b94c82a9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d482a9)

#30 0x00007ff7b94c83bf (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d483bf)

#31 0x00007ff7b94e5a12 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d65a12)

#32 0x00007ff7b94f886e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d7886e)

#33 0x00007ff7b94f7622 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d77622)

#34 0x00007ff7b947802a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1cf802a)

#35 0x00007ff7b9477940 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1cf7940)

#36 0x00007ff7b9628b6a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1ea8b6a)

#37 0x00007ff7b98865d3 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21065d3)

#38 0x00007ff7b9886c9f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2106c9f)

#39 0x00007ff7b98866cc (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21066cc)

#40 0x00007ff7b9887e67 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2107e67)

#41 0x00007ff7b9885d7a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2105d7a)

#42 0x00007ff7b98874c6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21074c6)

#43 0x00007ff7b996412d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e412d)

#44 0x00007ff7b9965c46 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e5c46)

#45 0x00007ff7b9966320 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e6320)

#46 0x00007ff7b9964f00 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e4f00)

#47 0x00007ff7b9887d8d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2107d8d)

#48 0x00007ff7b8f19d49 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1799d49)

#49 0x00007ff7b8f197f0 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x17997f0)

#50 0x00007ff7b9791b4d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2011b4d)

#51 0x00007ff7b9790913 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2010913)

#52 0x00007ff7b97915c3 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x20115c3)

#53 0x00007ff7b979388e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x201388e)

#54 0x00007ff7b96f9b6f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1f79b6f)

#55 0x00007ff7b96e90f4 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1f690f4)

#56 0x00007ff7b97248c6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1fa48c6)

#57 0x00007ff7b8fdff9c (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x185ff9c)

#58 0x00007ff7b7fd0515 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x850515)

#59 0x00007ff7b7fd083a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x85083a)

#60 0x00007ff7b7d3f21e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5bf21e)

#61 0x00007ff7b7d3f7db (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5bf7db)

#62 0x00007ff7b7d415bb (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5c15bb)

#63 0x00007ff7b7b8f4f0 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x40f4f0)

#64 0x00007ff7b7b8efa7 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x40efa7)

#65 0x00007ff7be1c6750 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x6a46750)

#66 0x00007ff827597374 (C:\Windows\System32\KERNEL32.DLL+0x17374)

#67 0x00007ff82805cc91 (C:\Windows\SYSTEM32\ntdll.dll+0x4cc91)

error: compile command failed due to exception 3 (use -v to see invocation)
Assertion failed: !T->isDependentType() && "should not see dependent types here", file T:\5\tools\clang\include\clang/AST/TypeNodes.inc, line 78

Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.

Stack dump:

0.	Program arguments: E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin\\swift-frontend.exe -frontend -c -primary-file E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\Sources\\swiftCxxCrash\\swiftCxxCrash.swift -emit-dependencies-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\swiftCxxCrash.build\\swiftCxxCrash.d -emit-reference-dependencies-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\swiftCxxCrash.build\\swiftCxxCrash.swiftdeps -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk\\ -I E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\XCTest-development\\usr\\lib\\swift\\windows\\x86_64 -I E:\\swift\\Platforms\\6.1.0\\Windows.platform\\Developer\\Library\\Testing-development\\usr\\lib\\swift\\windows -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\ModuleCache -static -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -empty-abi-descriptor -resource-dir E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\lib\\swift -enable-anonymous-context-mangled-names -file-compilation-dir E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType -Xcc -fmodule-map-file=E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\CxxLib.build\\module.modulemap -Xcc -I -Xcc E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\Sources\\CxxLib\\include -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -module-name swiftCxxCrash -package-name swiftcxxcrash_extensiononspecializedgenerictype -in-process-plugin-server-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin\\SwiftInProcPluginServer.dll -plugin-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\bin -plugin-path E:\\swift\\Toolchains\\6.1.0+Asserts\\usr\\local\\bin -parse-as-library -o E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\swiftCxxCrash.build\\swiftCxxCrash.swift.o -index-store-path E:\\Experiments\\swiftCxxCrash_extensionOnSpecializedGenericType\\.build\\x86_64-unknown-windows-msvc\\debug\\index\\store -index-system-modules

1.	Swift version 6.1 (swift-6.1-RELEASE)

2.	Compiling with the current language version

3.	While evaluating request ExtendedNominalRequest(extension of FooInt@E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift:8:1)

4.	While evaluating request UnqualifiedLookupRequest(looking up 'FooInt' from 0x2722452d720 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift" with options { AllowProtocolMembers, TypeLookup })

5.	While evaluating request LookupInModuleRequest(0x2722452d720 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift", 'FooInt', UnqualifiedLookup, TypesOnly, 0x2722452d720 FileUnit file="E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\swiftCxxCrash\swiftCxxCrash.swift", { NL_RemoveNonVisible, NL_RemoveOverridden })

6.	E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:15:25: importing 'FooInt'

7.	While importing a clang type ElaboratedType 0x2722459f1e0 'GenericFoo<int>' sugar imported

`-TemplateSpecializationType 0x2722459f190 'GenericFoo<int>' sugar imported

  |-name: 'GenericFoo' qualified

  | `-ClassTemplateDecl 0x2722459ebd0 <E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:7:1, line:10:1> line:8:8 imported in CxxLib GenericFoo

  |-TemplateArgument type 'int'

  | `-BuiltinType 0x27222f33520 'int'

  `-RecordType 0x2722459f170 'GenericFoo<int>' imported

    `-ClassTemplateSpecialization 0x2722459eff8 'GenericFoo'

8.	While importing a clang type TemplateSpecializationType 0x2722459f190 'GenericFoo<int>' sugar imported

|-name: 'GenericFoo' qualified

| `-ClassTemplateDecl 0x2722459ebd0 <E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:7:1, line:10:1> line:8:8 imported in CxxLib GenericFoo

|-TemplateArgument type 'int'

| `-BuiltinType 0x27222f33520 'int'

`-RecordType 0x2722459f170 'GenericFoo<int>' imported

  `-ClassTemplateSpecialization 0x2722459eff8 'GenericFoo'

9.	While importing a clang type RecordType 0x2722459f170 'GenericFoo<int>' imported

`-ClassTemplateSpecialization 0x2722459eff8 'GenericFoo'

10.	E:\Experiments\swiftCxxCrash_extensionOnSpecializedGenericType\Sources\CxxLib\include\shim.h:8:8: importing 'GenericFoo'

Exception Code: 0x80000003

 #0 0x00007ff7be1676b5 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x69e76b5)

 #1 0x00007ff825821881 (C:\Windows\System32\ucrtbase.dll+0x71881)

 #2 0x00007ff825822851 (C:\Windows\System32\ucrtbase.dll+0x72851)

 #3 0x00007ff8258241b5 (C:\Windows\System32\ucrtbase.dll+0x741b5)

 #4 0x00007ff8258244f1 (C:\Windows\System32\ucrtbase.dll+0x744f1)

 #5 0x00007ff7bccd5b2a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5555b2a)

 #6 0x00007ff7bccd56ed (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55556ed)

 #7 0x00007ff7bccd7299 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5557299)

 #8 0x00007ff7bcd75391 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f5391)

 #9 0x00007ff7bcd7704e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f704e)

#10 0x00007ff7bcd77403 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f7403)

#11 0x00007ff7bcd7450c (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f450c)

#12 0x00007ff7bcd74a24 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55f4a24)

#13 0x00007ff7bccd6546 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5556546)

#14 0x00007ff7bccd56ed (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x55556ed)

#15 0x00007ff7bccd542f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x555542f)

#16 0x00007ff7b94c9b1e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d49b1e)

#17 0x00007ff7b94c9aa6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d49aa6)

#18 0x00007ff7b94e375e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d6375e)

#19 0x00007ff7b94dcde6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d5cde6)

#20 0x00007ff7b94ddbbb (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d5dbbb)

#21 0x00007ff7b94f886e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d7886e)

#22 0x00007ff7b94f7622 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d77622)

#23 0x00007ff7b94bc98b (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c98b)

#24 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#25 0x00007ff7b94bc724 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c724)

#26 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#27 0x00007ff7b94bc724 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3c724)

#28 0x00007ff7b94bccd9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d3ccd9)

#29 0x00007ff7b94c82a9 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d482a9)

#30 0x00007ff7b94c83bf (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d483bf)

#31 0x00007ff7b94e5a12 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d65a12)

#32 0x00007ff7b94f886e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d7886e)

#33 0x00007ff7b94f7622 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1d77622)

#34 0x00007ff7b947802a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1cf802a)

#35 0x00007ff7b9477940 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1cf7940)

#36 0x00007ff7b9628b6a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1ea8b6a)

#37 0x00007ff7b98865d3 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21065d3)

#38 0x00007ff7b9886c9f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2106c9f)

#39 0x00007ff7b98866cc (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21066cc)

#40 0x00007ff7b9887e67 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2107e67)

#41 0x00007ff7b9885d7a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2105d7a)

#42 0x00007ff7b98874c6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21074c6)

#43 0x00007ff7b996412d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e412d)

#44 0x00007ff7b9965c46 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e5c46)

#45 0x00007ff7b9966320 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e6320)

#46 0x00007ff7b9964f00 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x21e4f00)

#47 0x00007ff7b9887d8d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2107d8d)

#48 0x00007ff7b8f19d49 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1799d49)

#49 0x00007ff7b8f197f0 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x17997f0)

#50 0x00007ff7b9791b4d (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2011b4d)

#51 0x00007ff7b9790913 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x2010913)

#52 0x00007ff7b97915c3 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x20115c3)

#53 0x00007ff7b979388e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x201388e)

#54 0x00007ff7b96f9b6f (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1f79b6f)

#55 0x00007ff7b96e90f4 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1f690f4)

#56 0x00007ff7b97248c6 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x1fa48c6)

#57 0x00007ff7b8fdff9c (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x185ff9c)

#58 0x00007ff7b7fd0515 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x850515)

#59 0x00007ff7b7fd083a (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x85083a)

#60 0x00007ff7b7d3f21e (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5bf21e)

#61 0x00007ff7b7d3f7db (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5bf7db)

#62 0x00007ff7b7d415bb (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x5c15bb)

#63 0x00007ff7b7b8f4f0 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x40f4f0)

#64 0x00007ff7b7b8efa7 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x40efa7)

#65 0x00007ff7be1c6750 (E:\swift\Toolchains\6.1.0+Asserts\usr\bin\swift-frontend.exe+0x6a46750)

#66 0x00007ff827597374 (C:\Windows\System32\KERNEL32.DLL+0x17374)

#67 0x00007ff82805cc91 (C:\Windows\SYSTEM32\ntdll.dll+0x4cc91)

Expected behavior

To not crash / to display an error if this operation is not supported

Environment

Swift version 6.1 (swift-6.1-RELEASE)
Target: x86_64-unknown-windows-msvc

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.crashBug: A crash, i.e., an abnormal termination of softwaretriage neededThis issue needs more specific labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions