Files
swift-mirror/test/Sema/inline_array_availability.swift
Hamish Knight f8ab391737 Introduce type sugar for InlineArray (#80087)
* [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.
2025-03-23 15:31:37 -07:00

19 lines
666 B
Swift

// RUN: %target-typecheck-verify-swift -enable-experimental-feature InlineArrayTypeSugar -target %target-cpu-apple-macosx15.0
// REQUIRES: swift_feature_InlineArrayTypeSugar
// REQUIRES: OS=macosx
func foo(x: InlineArray<3, Int>) {}
// expected-error@-1 {{'InlineArray' is only available in}}
// expected-note@-2 {{add @available attribute to enclosing global function}}
func bar(x: [3 x Int]) {}
// expected-error@-1 {{'InlineArray' is only available in}}
// expected-note@-2 {{add @available attribute to enclosing global function}}
@available(SwiftStdlib 9999, *)
func baz(x: InlineArray<3, Int>) {}
@available(SwiftStdlib 9999, *)
func qux(x: [3 x Int]) {}