Files
swift-mirror/test/Sema/atomic-diagnose-var.swift
Henrik G. Olsson cbc0ec3b88 Add -verify-ignore-unrelated where necessary (NFC)
These are tests that fail in the next commit without this flag. This
does not add -verify-ignore-unrelated to all tests with -verify, only
the ones that would fail without it. This is NFC since this flag is
currently a no-op.
2025-10-04 14:19:52 -07:00

40 lines
1.3 KiB
Swift

// RUN: %target-typecheck-verify-swift -verify-ignore-unrelated -disable-availability-checking
// REQUIRES: synchronization
import Synchronization
var a = Atomic(0) // expected-error {{variable of type 'Atomic<Int>' must be declared with a 'let'}}
let b = Atomic(0) // OK
class C {
var d = Atomic(0) // expected-error {{variable of type 'Atomic<Int>' must be declared with a 'let'}}
let e = Atomic(0) // OK
}
struct F: ~Copyable {
var g = Atomic(0) // expected-error {{variable of type 'Atomic<Int>' must be declared with a 'let'}}
let h = Atomic(0) // OK
}
func i(_: borrowing Atomic<Int>) {} // OK
func j(_: inout Atomic<Int>) {} // expected-error {{parameter of type 'Atomic<Int>' must be declared as either 'borrowing' or 'consuming'}}
func k(_: (inout Atomic<Int>) -> ()) {} // expected-error {{parameter of type 'Atomic<Int>' must be declared as either 'borrowing' or 'consuming'}}
func l(_: (borrowing Atomic<Int>) -> ()) {} // OK
func m() {
let _: (Int, Int) -> Int = {
var n = Atomic(0) // expected-error {{variable of type 'Atomic<Int>' must be declared with a 'let'}}
// expected-warning@-1 {{initialization of variable 'n' was never used; consider replacing with assignment to '_' or removing it}}
return $0 + $1
}
}
func o(_: consuming Atomic<Int>) {} // OK
func p(_: (consuming Atomic<Int>) -> ()) {} // OK