@@ -66,6 +66,8 @@ cc_library(
6666 hdrs = ["type_check_env.h" ],
6767 deps = [
6868 ":descriptor_pool_type_introspector" ,
69+ ":proto_type_mask" ,
70+ ":proto_type_mask_registry" ,
6971 "//common:constant" ,
7072 "//common:container" ,
7173 "//common:decl" ,
@@ -76,6 +78,7 @@ cc_library(
7678 "@com_google_absl//absl/container:flat_hash_map" ,
7779 "@com_google_absl//absl/log:absl_check" ,
7880 "@com_google_absl//absl/memory" ,
81+ "@com_google_absl//absl/status" ,
7982 "@com_google_absl//absl/status:statusor" ,
8083 "@com_google_absl//absl/strings" ,
8184 "@com_google_absl//absl/strings:string_view" ,
@@ -129,6 +132,8 @@ cc_library(
129132 deps = [
130133 ":format_type_name" ,
131134 ":namespace_generator" ,
135+ ":proto_type_mask" ,
136+ ":proto_type_mask_registry" ,
132137 ":type_check_env" ,
133138 ":type_inference_context" ,
134139 "//checker:checker_options" ,
@@ -310,3 +315,88 @@ cc_test(
310315 "@com_google_absl//absl/types:optional" ,
311316 ],
312317)
318+
319+ cc_library (
320+ name = "field_path" ,
321+ srcs = ["field_path.cc" ],
322+ hdrs = ["field_path.h" ],
323+ deps = [
324+ "@com_google_absl//absl/strings" ,
325+ "@com_google_absl//absl/strings:str_format" ,
326+ "@com_google_absl//absl/strings:string_view" ,
327+ "@com_google_absl//absl/types:span" ,
328+ ],
329+ )
330+
331+ cc_test (
332+ name = "field_path_test" ,
333+ srcs = ["field_path_test.cc" ],
334+ deps = [
335+ ":field_path" ,
336+ "//internal:testing" ,
337+ "@com_google_absl//absl/strings" ,
338+ ],
339+ )
340+
341+ cc_library (
342+ name = "proto_type_mask" ,
343+ srcs = ["proto_type_mask.cc" ],
344+ hdrs = ["proto_type_mask.h" ],
345+ deps = [
346+ ":field_path" ,
347+ "@com_google_absl//absl/container:btree" ,
348+ "@com_google_absl//absl/strings" ,
349+ ],
350+ )
351+
352+ cc_test (
353+ name = "proto_type_mask_test" ,
354+ srcs = ["proto_type_mask_test.cc" ],
355+ deps = [
356+ ":field_path" ,
357+ ":proto_type_mask" ,
358+ "//internal:testing" ,
359+ "@com_google_absl//absl/strings" ,
360+ ],
361+ )
362+
363+ cc_library (
364+ name = "proto_type_mask_registry" ,
365+ srcs = ["proto_type_mask_registry.cc" ],
366+ hdrs = ["proto_type_mask_registry.h" ],
367+ deps = [
368+ ":field_path" ,
369+ ":proto_type_mask" ,
370+ "//common:type" ,
371+ "//internal:status_macros" ,
372+ "@com_google_absl//absl/base:nullability" ,
373+ "@com_google_absl//absl/container:btree" ,
374+ "@com_google_absl//absl/container:flat_hash_map" ,
375+ "@com_google_absl//absl/container:flat_hash_set" ,
376+ "@com_google_absl//absl/memory" ,
377+ "@com_google_absl//absl/status" ,
378+ "@com_google_absl//absl/status:statusor" ,
379+ "@com_google_absl//absl/strings" ,
380+ "@com_google_absl//absl/strings:string_view" ,
381+ "@com_google_absl//absl/types:optional" ,
382+ "@com_google_absl//absl/types:span" ,
383+ "@com_google_protobuf//:protobuf" ,
384+ ],
385+ )
386+
387+ cc_test (
388+ name = "proto_type_mask_registry_test" ,
389+ srcs = ["proto_type_mask_registry_test.cc" ],
390+ deps = [
391+ ":proto_type_mask" ,
392+ ":proto_type_mask_registry" ,
393+ "//internal:testing" ,
394+ "//internal:testing_descriptor_pool" ,
395+ "@com_google_absl//absl/container:flat_hash_map" ,
396+ "@com_google_absl//absl/container:flat_hash_set" ,
397+ "@com_google_absl//absl/status" ,
398+ "@com_google_absl//absl/status:status_matchers" ,
399+ "@com_google_absl//absl/strings" ,
400+ "@com_google_absl//absl/strings:string_view" ,
401+ ],
402+ )
0 commit comments