Files
swift-mirror/stdlib/core/StringInterpolation.swift.gyb
Doug Gregor 82d7daf5fc Revert StringInterpolationConvertible back to class method requirements.
The initializer requirement is causing too much exponential behavior
in the constraint solver. We'll have to address that
first. Re-instating this change is tracked by rdar://problem/18381811.


Swift SVN r22080
2014-09-18 17:10:53 +00:00

58 lines
1.3 KiB
Swift

//===--- StringInterpolation.swift.gyb - String Interpolation --*- swift -*-==//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
%{
from SwiftIntTypes import *
# Number of bits in the Builtin.Word type
word_bits = int(CMAKE_SIZEOF_VOID_P) * 8
StreamableTypes = [
'String',
'Character',
'UnicodeScalar',
]
PrintableTypes = [
'Bool',
'Float32',
'Float64'
]
for int_ty in all_integer_types(word_bits):
PrintableTypes.append(int_ty.stdlib_name)
}%
extension String : StringInterpolationConvertible {
% for Type in StreamableTypes:
public static func convertFromStringInterpolationSegment(
expr: ${Type}
) -> String {
return _toStringReadOnlyStreamable(expr)
}
% end
% for Type in PrintableTypes:
public static func convertFromStringInterpolationSegment(
expr: ${Type}
) -> String {
return _toStringReadOnlyPrintable(expr)
}
% end
}
// ${'Local Variables'}:
// eval: (read-only-mode 1)
// End: