Skip to content

Commit 3b402f0

Browse files
authored
[stdlib] Implement native Unicode.Scalar binary properties (#39597)
* Generate Unicode data for Scalar Binary Properties * Use native scalar binary property lookup * Add _BinaryProperties to Scalar Properties narrow access control * Upgrade the notice to a warning in UnicodeScalarProperties
1 parent dcffbc0 commit 3b402f0

File tree

17 files changed

+15790
-252
lines changed

17 files changed

+15790
-252
lines changed

stdlib/public/SwiftShims/UnicodeData.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#ifndef SWIFT_STDLIB_SHIMS_UNICODEDATA_H
1414
#define SWIFT_STDLIB_SHIMS_UNICODEDATA_H
1515

16+
#include "SwiftStdbool.h"
1617
#include "SwiftStdint.h"
1718
#include "Visibility.h"
1819

@@ -43,6 +44,9 @@ __swift_intptr_t _swift_stdlib_getMphIdx(__swift_uint32_t scalar,
4344
SWIFT_RUNTIME_STDLIB_INTERNAL
4445
__swift_uint8_t _swift_stdlib_getGraphemeBreakProperty(__swift_uint32_t scalar);
4546

47+
SWIFT_RUNTIME_STDLIB_INTERNAL
48+
__swift_uint64_t _swift_stdlib_getBinaryProperties(__swift_uint32_t scalar);
49+
4650
#ifdef __cplusplus
4751
} // extern "C"
4852
#endif

stdlib/public/SwiftShims/UnicodeShims.h

Lines changed: 0 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -40,120 +40,8 @@ __swift_int32_t _swift_stdlib_unicode_strToLower(
4040
const __swift_uint16_t *Source, __swift_int32_t SourceLength);
4141

4242
typedef enum __swift_stdlib_UProperty {
43-
__swift_stdlib_UCHAR_ALPHABETIC = 0,
44-
__swift_stdlib_UCHAR_BINARY_START = __swift_stdlib_UCHAR_ALPHABETIC,
45-
__swift_stdlib_UCHAR_ASCII_HEX_DIGIT = 1,
46-
__swift_stdlib_UCHAR_BIDI_CONTROL = 2,
47-
__swift_stdlib_UCHAR_BIDI_MIRRORED = 3,
48-
__swift_stdlib_UCHAR_DASH = 4,
49-
__swift_stdlib_UCHAR_DEFAULT_IGNORABLE_CODE_POINT = 5,
50-
__swift_stdlib_UCHAR_DEPRECATED = 6,
51-
__swift_stdlib_UCHAR_DIACRITIC = 7,
52-
__swift_stdlib_UCHAR_EXTENDER = 8,
53-
__swift_stdlib_UCHAR_FULL_COMPOSITION_EXCLUSION = 9,
54-
__swift_stdlib_UCHAR_GRAPHEME_BASE = 10,
55-
__swift_stdlib_UCHAR_GRAPHEME_EXTEND = 11,
56-
__swift_stdlib_UCHAR_GRAPHEME_LINK = 12,
57-
__swift_stdlib_UCHAR_HEX_DIGIT = 13,
58-
__swift_stdlib_UCHAR_HYPHEN = 14,
59-
__swift_stdlib_UCHAR_ID_CONTINUE = 15,
60-
__swift_stdlib_UCHAR_ID_START = 16,
61-
__swift_stdlib_UCHAR_IDEOGRAPHIC = 17,
62-
__swift_stdlib_UCHAR_IDS_BINARY_OPERATOR = 18,
63-
__swift_stdlib_UCHAR_IDS_TRINARY_OPERATOR = 19,
64-
__swift_stdlib_UCHAR_JOIN_CONTROL = 20,
65-
__swift_stdlib_UCHAR_LOGICAL_ORDER_EXCEPTION = 21,
66-
__swift_stdlib_UCHAR_LOWERCASE = 22,
67-
__swift_stdlib_UCHAR_MATH = 23,
68-
__swift_stdlib_UCHAR_NONCHARACTER_CODE_POINT = 24,
69-
__swift_stdlib_UCHAR_QUOTATION_MARK = 25,
70-
__swift_stdlib_UCHAR_RADICAL = 26,
71-
__swift_stdlib_UCHAR_SOFT_DOTTED = 27,
72-
__swift_stdlib_UCHAR_TERMINAL_PUNCTUATION = 28,
73-
__swift_stdlib_UCHAR_UNIFIED_IDEOGRAPH = 29,
74-
__swift_stdlib_UCHAR_UPPERCASE = 30,
75-
__swift_stdlib_UCHAR_WHITE_SPACE = 31,
76-
__swift_stdlib_UCHAR_XID_CONTINUE = 32,
77-
__swift_stdlib_UCHAR_XID_START = 33,
78-
__swift_stdlib_UCHAR_CASE_SENSITIVE = 34,
79-
__swift_stdlib_UCHAR_S_TERM = 35,
80-
__swift_stdlib_UCHAR_VARIATION_SELECTOR = 36,
81-
__swift_stdlib_UCHAR_NFD_INERT = 37,
82-
__swift_stdlib_UCHAR_NFKD_INERT = 38,
83-
__swift_stdlib_UCHAR_NFC_INERT = 39,
84-
__swift_stdlib_UCHAR_NFKC_INERT = 40,
85-
__swift_stdlib_UCHAR_SEGMENT_STARTER = 41,
86-
__swift_stdlib_UCHAR_PATTERN_SYNTAX = 42,
87-
__swift_stdlib_UCHAR_PATTERN_WHITE_SPACE = 43,
88-
__swift_stdlib_UCHAR_POSIX_ALNUM = 44,
89-
__swift_stdlib_UCHAR_POSIX_BLANK = 45,
90-
__swift_stdlib_UCHAR_POSIX_GRAPH = 46,
91-
__swift_stdlib_UCHAR_POSIX_PRINT = 47,
92-
__swift_stdlib_UCHAR_POSIX_XDIGIT = 48,
93-
__swift_stdlib_UCHAR_CASED = 49,
94-
__swift_stdlib_UCHAR_CASE_IGNORABLE = 50,
95-
__swift_stdlib_UCHAR_CHANGES_WHEN_LOWERCASED = 51,
96-
__swift_stdlib_UCHAR_CHANGES_WHEN_UPPERCASED = 52,
97-
__swift_stdlib_UCHAR_CHANGES_WHEN_TITLECASED = 53,
98-
__swift_stdlib_UCHAR_CHANGES_WHEN_CASEFOLDED = 54,
99-
__swift_stdlib_UCHAR_CHANGES_WHEN_CASEMAPPED = 55,
100-
__swift_stdlib_UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED = 56,
101-
__swift_stdlib_UCHAR_EMOJI = 57,
102-
__swift_stdlib_UCHAR_EMOJI_PRESENTATION = 58,
103-
__swift_stdlib_UCHAR_EMOJI_MODIFIER = 59,
104-
__swift_stdlib_UCHAR_EMOJI_MODIFIER_BASE = 60,
105-
106-
__swift_stdlib_UCHAR_BIDI_CLASS = 0x1000,
107-
__swift_stdlib_UCHAR_INT_START = __swift_stdlib_UCHAR_BIDI_CLASS,
108-
__swift_stdlib_UCHAR_BLOCK = 0x1001,
109-
__swift_stdlib_UCHAR_CANONICAL_COMBINING_CLASS = 0x1002,
110-
__swift_stdlib_UCHAR_DECOMPOSITION_TYPE = 0x1003,
111-
__swift_stdlib_UCHAR_EAST_ASIAN_WIDTH = 0x1004,
11243
__swift_stdlib_UCHAR_GENERAL_CATEGORY = 0x1005,
113-
__swift_stdlib_UCHAR_JOINING_GROUP = 0x1006,
114-
__swift_stdlib_UCHAR_JOINING_TYPE = 0x1007,
115-
__swift_stdlib_UCHAR_LINE_BREAK = 0x1008,
11644
__swift_stdlib_UCHAR_NUMERIC_TYPE = 0x1009,
117-
__swift_stdlib_UCHAR_SCRIPT = 0x100A,
118-
__swift_stdlib_UCHAR_HANGUL_SYLLABLE_TYPE = 0x100B,
119-
__swift_stdlib_UCHAR_NFD_QUICK_CHECK = 0x100C,
120-
__swift_stdlib_UCHAR_NFKD_QUICK_CHECK = 0x100D,
121-
__swift_stdlib_UCHAR_NFC_QUICK_CHECK = 0x100E,
122-
__swift_stdlib_UCHAR_NFKC_QUICK_CHECK = 0x100F,
123-
__swift_stdlib_UCHAR_LEAD_CANONICAL_COMBINING_CLASS = 0x1010,
124-
__swift_stdlib_UCHAR_TRAIL_CANONICAL_COMBINING_CLASS = 0x1011,
125-
__swift_stdlib_UCHAR_GRAPHEME_CLUSTER_BREAK = 0x1012,
126-
__swift_stdlib_UCHAR_SENTENCE_BREAK = 0x1013,
127-
__swift_stdlib_UCHAR_WORD_BREAK = 0x1014,
128-
__swift_stdlib_UCHAR_BIDI_PAIRED_BRACKET_TYPE = 0x1015,
129-
130-
__swift_stdlib_UCHAR_GENERAL_CATEGORY_MASK = 0x2000,
131-
__swift_stdlib_UCHAR_MASK_START = __swift_stdlib_UCHAR_GENERAL_CATEGORY_MASK,
132-
133-
__swift_stdlib_UCHAR_NUMERIC_VALUE = 0x3000,
134-
__swift_stdlib_UCHAR_DOUBLE_START = __swift_stdlib_UCHAR_NUMERIC_VALUE,
135-
136-
__swift_stdlib_UCHAR_AGE = 0x4000,
137-
__swift_stdlib_UCHAR_STRING_START = __swift_stdlib_UCHAR_AGE,
138-
__swift_stdlib_UCHAR_BIDI_MIRRORING_GLYPH = 0x4001,
139-
__swift_stdlib_UCHAR_CASE_FOLDING = 0x4002,
140-
141-
__swift_stdlib_UCHAR_LOWERCASE_MAPPING = 0x4004,
142-
__swift_stdlib_UCHAR_NAME = 0x4005,
143-
__swift_stdlib_UCHAR_SIMPLE_CASE_FOLDING = 0x4006,
144-
__swift_stdlib_UCHAR_SIMPLE_LOWERCASE_MAPPING = 0x4007,
145-
__swift_stdlib_UCHAR_SIMPLE_TITLECASE_MAPPING = 0x4008,
146-
__swift_stdlib_UCHAR_SIMPLE_UPPERCASE_MAPPING = 0x4009,
147-
__swift_stdlib_UCHAR_TITLECASE_MAPPING = 0x400A,
148-
149-
__swift_stdlib_UCHAR_UPPERCASE_MAPPING = 0x400C,
150-
__swift_stdlib_UCHAR_BIDI_PAIRED_BRACKET = 0x400D,
151-
152-
__swift_stdlib_UCHAR_SCRIPT_EXTENSIONS = 0x7000,
153-
__swift_stdlib_UCHAR_OTHER_PROPERTY_START =
154-
__swift_stdlib_UCHAR_SCRIPT_EXTENSIONS,
155-
156-
__swift_stdlib_UCHAR_INVALID_CODE = -1
15745
} __swift_stdlib_UProperty;
15846

15947
typedef enum __swift_stdlib_UErrorCode {
@@ -403,11 +291,6 @@ typedef __swift_uint16_t __swift_stdlib_UChar;
403291
typedef __swift_uint8_t
404292
__swift_stdlib_UVersionInfo[__SWIFT_STDLIB_U_MAX_VERSION_LENGTH];
405293

406-
SWIFT_RUNTIME_STDLIB_API
407-
__swift_stdlib_UBool
408-
__swift_stdlib_u_hasBinaryProperty(__swift_stdlib_UChar32,
409-
__swift_stdlib_UProperty);
410-
411294
SWIFT_RUNTIME_STDLIB_API
412295
void __swift_stdlib_u_charAge(
413296
__swift_stdlib_UChar32, __swift_stdlib_UVersionInfo _Nonnull);

0 commit comments

Comments
 (0)