mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
* [CS] Decline to handle InlineArray in shrink Previously we would try the contextual type `(<int>, <element>)`, which is wrong. Given we want to eliminate shrink, let's just bail. * [Sema] Sink `ValueMatchVisitor` into `applyUnboundGenericArguments` Make sure it's called for sugar code paths too. Also let's just always run it since it should be a pretty cheap check. * [Sema] Diagnose passing integer to non-integer type parameter This was previously missed, though would have been diagnosed later as a requirement failure. * [Parse] Split up `canParseType` While here, address the FIXME in `canParseTypeSimpleOrComposition` and only check to see if we can parse a type-simple, including `each`, `some`, and `any` for better recovery. * Introduce type sugar for InlineArray Parse e.g `[3 x Int]` as type sugar for InlineArray. Gated behind an experimental feature flag for now.
16 lines
973 B
Swift
16 lines
973 B
Swift
// RUN: %target-swift-frontend %s -emit-ir -enable-experimental-feature InlineArrayTypeSugar -disable-availability-checking -g -o - | %FileCheck %s
|
|
|
|
// REQUIRES: swift_feature_InlineArrayTypeSugar
|
|
|
|
let a: ([3 x Int], InlineArray<3, Int>) = ([1, 2, 3], [1, 2, 3])
|
|
let b: ([3 x [1 x String]], InlineArray<3, InlineArray<1, String>>) = ([[""], [""], [""]], [[""], [""], [""]])
|
|
|
|
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "$s$2_SiXSA_s11InlineArrayVy$2_SiGtD", {{.*}})
|
|
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "$s$2_$0_SSXSAXSA_s11InlineArrayVy$2_ABy$0_SSGGtD", {{.*}})
|
|
|
|
// RUN: swift-demangle 's$2_SiXSA_s11InlineArrayVy$2_SiGtD' | %FileCheck %s --check-prefix SIMPLE
|
|
// SIMPLE: ([3 x Swift.Int], Swift.InlineArray<3, Swift.Int>)
|
|
|
|
// RUN: swift-demangle 's$2_$0_SSXSAXSA_s11InlineArrayVy$2_ABy$0_SSGGtD' | %FileCheck %s --check-prefix NESTED
|
|
// NESTED: ([3 x [1 x Swift.String]], Swift.InlineArray<3, Swift.InlineArray<1, Swift.String>>)
|