mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Mark some more conversion functions as @readonly.
On -Ounchecked we are now able to zap this expression (from Richards): UnicodeScalar(UInt32(2)+"0".value) However, on -O we still check for overflow and actually need to construct the string. Swift SVN r20856
This commit is contained in:
@@ -44,6 +44,7 @@ public enum Character :
|
|||||||
self = SmallRepresentation(Builtin.trunc_Int64_Int63(IE.asInt.value))
|
self = SmallRepresentation(Builtin.trunc_Int64_Int63(IE.asInt.value))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@semantics("readonly")
|
||||||
public static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
public static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
||||||
start: Builtin.RawPointer,
|
start: Builtin.RawPointer,
|
||||||
byteSize: Builtin.Word,
|
byteSize: Builtin.Word,
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ public struct StaticString
|
|||||||
self._isASCII = isASCII
|
self._isASCII = isASCII
|
||||||
}
|
}
|
||||||
|
|
||||||
public
|
@semantics("readonly")
|
||||||
static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
public static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
||||||
start: Builtin.RawPointer,
|
start: Builtin.RawPointer,
|
||||||
byteSize: Builtin.Word,
|
byteSize: Builtin.Word,
|
||||||
isASCII: Builtin.Int1) -> StaticString {
|
isASCII: Builtin.Int1) -> StaticString {
|
||||||
@@ -65,20 +65,21 @@ public struct StaticString
|
|||||||
start, byteSize: byteSize, isASCII: isASCII)
|
start, byteSize: byteSize, isASCII: isASCII)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@semantics("readonly")
|
||||||
public static func convertFromExtendedGraphemeClusterLiteral(
|
public static func convertFromExtendedGraphemeClusterLiteral(
|
||||||
value: StaticString) -> StaticString {
|
value: StaticString) -> StaticString {
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
public
|
@semantics("readonly")
|
||||||
static func _convertFromBuiltinStringLiteral(
|
public static func _convertFromBuiltinStringLiteral(
|
||||||
start: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1
|
start: Builtin.RawPointer, byteSize: Builtin.Word, isASCII: Builtin.Int1
|
||||||
) -> StaticString {
|
) -> StaticString {
|
||||||
return StaticString(start: start, byteSize: byteSize, isASCII: isASCII)
|
return StaticString(start: start, byteSize: byteSize, isASCII: isASCII)
|
||||||
}
|
}
|
||||||
|
|
||||||
public
|
@semantics("readonly")
|
||||||
static func convertFromStringLiteral(value: StaticString) -> StaticString {
|
public static func convertFromStringLiteral(value: StaticString) -> StaticString {
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ extension String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extension String : _BuiltinExtendedGraphemeClusterLiteralConvertible {
|
extension String : _BuiltinExtendedGraphemeClusterLiteralConvertible {
|
||||||
|
@semantics("readonly")
|
||||||
public
|
public
|
||||||
static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
static func _convertFromBuiltinExtendedGraphemeClusterLiteral(
|
||||||
start: Builtin.RawPointer,
|
start: Builtin.RawPointer,
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public struct UnicodeScalar : ExtendedGraphemeClusterLiteralConvertible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@semantics("readonly")
|
||||||
public static func convertFromExtendedGraphemeClusterLiteral(
|
public static func convertFromExtendedGraphemeClusterLiteral(
|
||||||
value: String) -> UnicodeScalar {
|
value: String) -> UnicodeScalar {
|
||||||
let unicodeScalars = value.unicodeScalars
|
let unicodeScalars = value.unicodeScalars
|
||||||
|
|||||||
Reference in New Issue
Block a user