Files
swift-mirror/test/Parse/move_func_decl.swift
Kavon Farvardin 31aa2f77e3 polish noncopyable types diagnostic wordings
- replaces "move-only" terminology with "noncopyable"
- replaces compiler jargon like "guaranteed parameters"
  and "lvalue" with corresponding language-level notions
- simplifies diagnostics about closures.

and probably more.

rdar://109281444
2023-05-24 20:56:36 -07:00

24 lines
907 B
Swift

// RUN: %target-typecheck-verify-swift -disable-availability-checking
// rdar://100872195 (error: 'move' can only be applied to a local binding ('let', 'var', or parameter) , error: Can not use feature when experimental move only is disabled!)
//
// Identifiers with a single underscore are not reserved for use by the language implementation. It is perfectly valid for a library to define its own '_move'.
// The contextual consume keyword should only be parse when it is followed by an lvalue, so should *not* conflict with user-defined '_move' functions.
// https://github.com/apple/swift-evolution/blob/main/proposals/0366-move-function.md#source-compatibility
func _move<T>(t: T) -> T { return t }
func testUserMove() {
let t = String()
let _ = _move(t: t)
}
struct What {
func _move(_ x: String) -> String { return x }
func testMethod() {
let t = String()
let _ = _move(t)
}
}