@@ -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" ,
@@ -153,6 +158,7 @@ cc_library(
153158 "@com_google_absl//absl/base:no_destructor" ,
154159 "@com_google_absl//absl/base:nullability" ,
155160 "@com_google_absl//absl/cleanup" ,
161+ "@com_google_absl//absl/container:btree" ,
156162 "@com_google_absl//absl/container:flat_hash_map" ,
157163 "@com_google_absl//absl/container:flat_hash_set" ,
158164 "@com_google_absl//absl/log:absl_check" ,
@@ -310,3 +316,89 @@ cc_test(
310316 "@com_google_absl//absl/types:optional" ,
311317 ],
312318)
319+
320+ cc_library (
321+ name = "field_path" ,
322+ srcs = ["field_path.cc" ],
323+ hdrs = ["field_path.h" ],
324+ deps = [
325+ "@com_google_absl//absl/strings" ,
326+ "@com_google_absl//absl/strings:str_format" ,
327+ "@com_google_absl//absl/strings:string_view" ,
328+ "@com_google_absl//absl/types:span" ,
329+ ],
330+ )
331+
332+ cc_test (
333+ name = "field_path_test" ,
334+ srcs = ["field_path_test.cc" ],
335+ deps = [
336+ ":field_path" ,
337+ "//internal:testing" ,
338+ "@com_google_absl//absl/strings" ,
339+ ],
340+ )
341+
342+ cc_library (
343+ name = "proto_type_mask" ,
344+ srcs = ["proto_type_mask.cc" ],
345+ hdrs = ["proto_type_mask.h" ],
346+ deps = [
347+ ":field_path" ,
348+ "@com_google_absl//absl/container:btree" ,
349+ "@com_google_absl//absl/strings" ,
350+ ],
351+ )
352+
353+ cc_test (
354+ name = "proto_type_mask_test" ,
355+ srcs = ["proto_type_mask_test.cc" ],
356+ deps = [
357+ ":field_path" ,
358+ ":proto_type_mask" ,
359+ "//internal:testing" ,
360+ "@com_google_absl//absl/strings" ,
361+ ],
362+ )
363+
364+ cc_library (
365+ name = "proto_type_mask_registry" ,
366+ srcs = ["proto_type_mask_registry.cc" ],
367+ hdrs = ["proto_type_mask_registry.h" ],
368+ deps = [
369+ ":field_path" ,
370+ ":proto_type_mask" ,
371+ "//common:type" ,
372+ "//internal:status_macros" ,
373+ "@com_google_absl//absl/base:nullability" ,
374+ "@com_google_absl//absl/container:btree" ,
375+ "@com_google_absl//absl/container:flat_hash_map" ,
376+ "@com_google_absl//absl/container:flat_hash_set" ,
377+ "@com_google_absl//absl/memory" ,
378+ "@com_google_absl//absl/status" ,
379+ "@com_google_absl//absl/status:statusor" ,
380+ "@com_google_absl//absl/strings" ,
381+ "@com_google_absl//absl/strings:string_view" ,
382+ "@com_google_absl//absl/types:optional" ,
383+ "@com_google_absl//absl/types:span" ,
384+ "@com_google_protobuf//:protobuf" ,
385+ ],
386+ )
387+
388+ cc_test (
389+ name = "proto_type_mask_registry_test" ,
390+ srcs = ["proto_type_mask_registry_test.cc" ],
391+ deps = [
392+ ":proto_type_mask" ,
393+ ":proto_type_mask_registry" ,
394+ "//internal:testing" ,
395+ "//internal:testing_descriptor_pool" ,
396+ "@com_google_absl//absl/container:btree" ,
397+ "@com_google_absl//absl/container:flat_hash_map" ,
398+ "@com_google_absl//absl/container:flat_hash_set" ,
399+ "@com_google_absl//absl/status" ,
400+ "@com_google_absl//absl/status:status_matchers" ,
401+ "@com_google_absl//absl/strings" ,
402+ "@com_google_absl//absl/strings:string_view" ,
403+ ],
404+ )
0 commit comments