Make "true" and "false" Boolean literal constants for the BooleanLiteralConvertible protocol.

Introduce the new BooleanLiteralConvertible protocol for Boolean
literals. Take "true" and "false" as real keywords (which is most of the
reason for the testsuite churn). Make Bool BooleanLiteralConvertible
and the default Boolean literal type, and ObjCBool
BooleanLiteralConvertible. Fixes <rdar://problem/17405310> and the
recent regression that made ObjCBool not work with true/false.


Swift SVN r19728
This commit is contained in:
Doug Gregor
2014-07-09 16:57:35 +00:00
parent f0621d1563
commit 2f3f6acf21
57 changed files with 312 additions and 169 deletions

View File

@@ -40,7 +40,7 @@ const uint16_t VERSION_MAJOR = 0;
/// Serialized module format minor version number.
///
/// When the format changes IN ANY WAY, this number should be incremented.
const uint16_t VERSION_MINOR = 113;
const uint16_t VERSION_MINOR = 114;
using DeclID = Fixnum<31>;
using DeclIDField = BCFixed<31>;
@@ -1161,6 +1161,7 @@ namespace index_block {
LogicValue = 4,
ArrayLiteralConvertible,
BooleanLiteralConvertible,
CharacterLiteralConvertible,
DictionaryLiteralConvertible,
ExtendedGraphemeClusterLiteralConvertible,
@@ -1170,6 +1171,7 @@ namespace index_block {
StringLiteralConvertible,
NilLiteralConvertible,
_BuiltinBooleanLiteralConvertible,
_BuiltinCharacterLiteralConvertible,
_BuiltinExtendedGraphemeClusterLiteralConvertible,
_BuiltinFloatLiteralConvertible,