File tree 2 files changed +27
-5
lines changed 2 files changed +27
-5
lines changed Original file line number Diff line number Diff line change @@ -3000,6 +3000,7 @@ bool TypeConverter::visitAggregateLeaves(
3000
3000
return isa<SILPackType>(ty) ||
3001
3001
isa<TupleType>(ty) ||
3002
3002
isa<PackExpansionType>(ty) ||
3003
+ isa<BuiltinFixedArrayType>(ty) ||
3003
3004
ty.getEnumOrBoundGenericEnum () ||
3004
3005
ty.getStructOrBoundGenericStruct ();
3005
3006
};
@@ -3036,6 +3037,13 @@ bool TypeConverter::visitAggregateLeaves(
3036
3037
insertIntoWorklist (expansion.getPatternType (),
3037
3038
origTy.getPackExpansionPatternType (),
3038
3039
field, index );
3040
+ } else if (auto array = dyn_cast<BuiltinFixedArrayType>(ty)) {
3041
+ auto origBFA = origTy.getAs <BuiltinFixedArrayType>();
3042
+ insertIntoWorklist (
3043
+ array->getElementType (),
3044
+ AbstractionPattern (origTy.getGenericSignatureOrNull (),
3045
+ origBFA->getElementType ()),
3046
+ field, index );
3039
3047
} else if (auto *decl = ty.getStructOrBoundGenericStruct ()) {
3040
3048
for (auto *structField : decl->getStoredProperties ()) {
3041
3049
auto subMap = ty->getContextSubstitutionMap ();
Original file line number Diff line number Diff line change 1
- // RUN: %target-swift-frontend \
2
- // RUN: %s \
3
- // RUN: -emit-silgen \
4
- // RUN: -target %target-swift-5.1-abi-triple \
5
- // RUN: -enable-experimental-feature Sensitive \
1
+ // RUN: %target-swift-frontend \
2
+ // RUN: %s \
3
+ // RUN: -emit-silgen \
4
+ // RUN: -disable-experimental-parser-round-trip \
5
+ // RUN: -target %target-swift-5.1-abi-triple \
6
+ // RUN: -enable-experimental-feature Sensitive \
7
+ // RUN: -enable-experimental-feature ValueGenerics \
6
8
// RUN: -enable-builtin-module
7
9
10
+ // FIXME: Remove -disable-experimental-parser-round-trip when it's not required for using ValueGenerics.
11
+
8
12
// REQUIRES: swift_feature_Sensitive
13
+ // REQUIRES: swift_feature_ValueGenerics
14
+
15
+ // REQUIRES: asserts
9
16
10
17
// Force verification of TypeLowering's isTrivial.
11
18
@@ -68,3 +75,10 @@ struct S_Explicit_Sensitive {
68
75
69
76
func takeS_Explicit_Sensitive( _ s: S_Explicit_Sensitive ) {
70
77
}
78
+
79
+ import Builtin
80
+
81
+ func foo( ) {
82
+ let bricks : Builtin . FixedArray < 1 , Conditional < Int > >
83
+ let bricks2 : Builtin . FixedArray < 1 , Conditional < String > >
84
+ }
You can’t perform that action at this time.
0 commit comments