Parent inventory: #8108
Objective
Hoist native helper duplicates that are not JSON or diagnostic formatting: lexical digit predicates, runtime dispatch symbol validation, parser/sema classification helpers, and small IO/string helpers.
Shared Module Specification
Migration Checklist
Complete Replacement Inventory
Performance And Reliability Requirements
Fast Tests
End-To-End Completion Criteria
Parent inventory: #8108
Objective
Hoist native helper duplicates that are not JSON or diagnostic formatting: lexical digit predicates, runtime dispatch symbol validation, parser/sema classification helpers, and small IO/string helpers.
Shared Module Specification
MakeIdentifierSafeSuffix,ReadTextFile,ParseIrObjectBackend,ClassifyMethodFamilyFromSelector, and runtime metadata counters only after confirming semantics are identical.Migration Checklist
Complete Replacement Inventory
IsHexDigit- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/lex/objc3_lexer.cpp:20native/objc3c/src/parse/objc3_parse_support.cpp:13IsBinaryDigit- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/lex/objc3_lexer.cpp:24native/objc3c/src/parse/objc3_parse_support.cpp:17IsOctalDigit- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/lex/objc3_lexer.cpp:28native/objc3c/src/parse/objc3_parse_support.cpp:21IsDigitSeparator- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/lex/objc3_lexer.cpp:32native/objc3c/src/parse/objc3_parse_support.cpp:25IsRuntimeDispatchSymbolStart- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/driver/objc3_cli_options.cpp:14native/objc3c/src/lower/objc3_lowering_contract.cpp:12IsRuntimeDispatchSymbolBody- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/driver/objc3_cli_options.cpp:18native/objc3c/src/lower/objc3_lowering_contract.cpp:16IsValidRuntimeDispatchSymbol- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/driver/objc3_cli_options.cpp:22native/objc3c/src/lower/objc3_lowering_contract.cpp:143TypeName- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/pipeline/objc3_frontend_artifacts.cpp:225native/objc3c/src/sema/objc3_semantic_passes.cpp:34MakeIdentifierSafeSuffix- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/io/objc3_process.cpp:373native/objc3c/src/pipeline/objc3_frontend_artifacts.cpp:9148ParseIrObjectBackend- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/driver/objc3_cli_options.cpp:34native/objc3c/src/tools/objc3c_frontend_c_api_runner.cpp:68ReadTextFile- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/libobjc3c_frontend/frontend_anchor.cpp:342native/objc3c/src/pipeline/objc3_runtime_import_surface.cpp:285ClassifyMethodFamilyFromSelector- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/parse/objc3_parser.cpp:207native/objc3c/src/sema/objc3_semantic_passes.cpp:17033CountRuntimeMetadataSourceRecordSetDeclarations- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/pipeline/objc3_frontend_artifacts.cpp:7605native/objc3c/src/pipeline/objc3_runtime_import_surface.cpp:1732CountRuntimeMetadataSourceRecordSetReferences- 2 definition(s)/local occurrence(s) to replace or explicitly document as intentionally local if semantics differ.native/objc3c/src/pipeline/objc3_frontend_artifacts.cpp:7615native/objc3c/src/pipeline/objc3_runtime_import_surface.cpp:1742Performance And Reliability Requirements
tmp/as durable source-of-truth; generated temporary files are allowed only as transient command inputs.Fast Tests
git diff --check.End-To-End Completion Criteria