mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
* Simplify conforming to ExpressibleByStringLiteral with default implementations * attributes on default implementations * ExpressibleByUnicodeScalarLiteral validation test * more generic default implementations * clean up test * remove unneeded implementations * remove test verification * indent * revert @effects and affected methods * fix test generics with _ protocols * Add semantic tests * clean up tests * Fix redundant conformance requirements
40 lines
1.3 KiB
Swift
40 lines
1.3 KiB
Swift
// RUN: %target-typecheck-verify-swift
|
|
|
|
struct CustomString<T: _ExpressibleByBuiltinStringLiteral>
|
|
: ExpressibleByStringLiteral {
|
|
init(stringLiteral value: T) {}
|
|
}
|
|
struct CustomExtendedGraphemeCluster
|
|
<T: _ExpressibleByBuiltinExtendedGraphemeClusterLiteral>
|
|
: ExpressibleByExtendedGraphemeClusterLiteral {
|
|
init(extendedGraphemeClusterLiteral value: T) {}
|
|
}
|
|
struct CustomUnicodeScalar<T: _ExpressibleByBuiltinUnicodeScalarLiteral>
|
|
: ExpressibleByUnicodeScalarLiteral {
|
|
init(unicodeScalarLiteral value: T) {
|
|
}
|
|
}
|
|
|
|
func verify<T>(stringLiteral value: CustomString<T>, with: T.Type) {
|
|
}
|
|
func verify<T>(
|
|
extendedGraphemeClusterLiteral value: CustomExtendedGraphemeCluster<T>,
|
|
with: T.Type) {
|
|
}
|
|
func verify<T>(
|
|
unicodeScalarLiteral value: CustomUnicodeScalar<T>,
|
|
with: T.Type) {
|
|
}
|
|
|
|
verify(unicodeScalarLiteral: "å", with: UnicodeScalar.self)
|
|
verify(unicodeScalarLiteral: "ß", with: Character.self)
|
|
verify(unicodeScalarLiteral: "c", with: String.self)
|
|
verify(unicodeScalarLiteral: "∂", with: StaticString.self)
|
|
|
|
verify(extendedGraphemeClusterLiteral: "a", with: Character.self)
|
|
verify(extendedGraphemeClusterLiteral: "❄︎", with: String.self)
|
|
verify(extendedGraphemeClusterLiteral: "김", with: StaticString.self)
|
|
|
|
verify(stringLiteral: "abc", with: String.self)
|
|
verify(stringLiteral: "∂éƒg", with: StaticString.self)
|