Files
swift-mirror/test/Sema/availability_define_parsing.swift
Doug Gregor 8cd2f34654 Generalize tests for both diagnostic styles, or force the LLVM style
These tests are using FileCheck to check the result of diagnostic
formatting in ways that don't match the new formatter. Force the old
formatter or, where possible, generalize so that they match both
formatters.
2024-02-19 02:48:37 -10:00

39 lines
1.8 KiB
Swift

// RUN: not %target-swift-frontend -typecheck %s -diagnostic-style llvm \
// RUN: -define-availability "_brokenParse:a b c d" \
// RUN: -define-availability ":a b c d" \
// RUN: -define-availability "_justAName" \
// RUN: -define-availability "_brokenPlatforms:spaceOS 10.11" \
// RUN: -define-availability "_refuseWildcard:iOS 13.0, *, macOS 11.0" \
// RUN: -define-availability "_incorrectCase:ios 13.0, macos 11.0" \
// RUN: -define-availability "_duplicateVersion 1.0:iOS 13.0" \
// RUN: -define-availability "_duplicateVersion 1.0:iOS 13.0" \
// RUN: 2>&1 | %FileCheck %s
// Force reading the argument macros.
@available(_brokenPlatforms)
public func brokenPlatforms() {}
// CHECK: -define-availability argument:1:16: error: expected version number
// CHECK-NEXT: _brokenParse:a b c d
// CHECK: -define-availability argument:1:1: error: expected an identifier to begin an availability macro definition
// CHECK-NEXT: :a b c d
// CHECK: -define-availability argument:1:11: error: expected ':' after '_justAName' in availability macro definition
// CHECK-NEXT: _justAName
// CHECK: -define-availability argument:1:18: warning: unrecognized platform name 'spaceOS'
// CHECK-NEXT: _brokenPlatforms:spaceOS 10.11
// CHECK: -define-availability argument:1:27: error: future platforms identified by '*' cannot be used in an availability macro
// CHECK-NEXT: _refuseWildcard
// CHECK: -define-availability argument:1:16: warning: unrecognized platform name 'ios'; did you mean 'iOS'?
// CHECK-NEXT: _incorrectCase
// CHECK: -define-availability argument:1:26: warning: unrecognized platform name 'macos'; did you mean 'macOS'?
// CHECK-NEXT: _incorrectCase
// CHECK: duplicate definition of availability macro '_duplicateVersion' for version '1.0'
// CHECK-NEXT: _duplicateVersion