Files
swift-mirror/test/expr/primary/literal/string.swift
Andrew Bennett ca31338e49 Simplifying implementation of ExpressibleByStringLiteral (#7125)
* 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
2017-04-21 20:45:28 -07:00

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)