blob: 4244cd2fa921f358331eb30188f8ceec4a385d67 [file] [log] [blame]
// 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)