@@ -129,6 +129,7 @@ cc_library(
129
129
":type_annotation_filter" ,
130
130
":type_annotation_resolver" ,
131
131
":type_annotation_utils" ,
132
+ ":type_inference_error_handler" ,
132
133
":type_system_tracer" ,
133
134
":unify_type_annotations" ,
134
135
":validate_concrete_type" ,
@@ -246,6 +247,19 @@ cc_library(
246
247
],
247
248
)
248
249
250
+ cc_library (
251
+ name = "type_inference_error_handler" ,
252
+ hdrs = ["type_inference_error_handler.h" ],
253
+ deps = [
254
+ ":inference_table" ,
255
+ "//xls/dslx/frontend:ast" ,
256
+ "//xls/dslx/frontend:ast_node" ,
257
+ "//xls/dslx/type_system:type" ,
258
+ "@com_google_absl//absl/status:statusor" ,
259
+ "@com_google_absl//absl/types:span" ,
260
+ ],
261
+ )
262
+
249
263
cc_library (
250
264
name = "typecheck_module_v2" ,
251
265
srcs = ["typecheck_module_v2.cc" ],
@@ -255,11 +269,14 @@ cc_library(
255
269
":inference_table_converter" ,
256
270
":inference_table_converter_impl" ,
257
271
":populate_table" ,
272
+ ":type_inference_error_handler" ,
258
273
":type_system_tracer" ,
259
274
"//xls/common/file:filesystem" ,
260
275
"//xls/common/status:status_macros" ,
261
276
"//xls/dslx:import_data" ,
262
277
"//xls/dslx:warning_collector" ,
278
+ "//xls/dslx/frontend:ast" ,
279
+ "//xls/dslx/frontend:ast_node" ,
263
280
"//xls/dslx/frontend:module" ,
264
281
"//xls/dslx/frontend:semantics_analysis" ,
265
282
"//xls/dslx/type_system:type_info" ,
@@ -269,6 +286,7 @@ cc_library(
269
286
"@com_google_absl//absl/status" ,
270
287
"@com_google_absl//absl/status:statusor" ,
271
288
"@com_google_absl//absl/strings" ,
289
+ "@com_google_absl//absl/types:span" ,
272
290
],
273
291
)
274
292
@@ -413,6 +431,32 @@ cc_test(
413
431
],
414
432
)
415
433
434
+ cc_test (
435
+ name = "typecheck_module_v2_error_handler_test" ,
436
+ srcs = ["typecheck_module_v2_error_handler_test.cc" ],
437
+ deps = [
438
+ ":matchers" ,
439
+ ":type_annotation_utils" ,
440
+ ":type_inference_error_handler" ,
441
+ ":type_system_test_utils" ,
442
+ "//xls/common:xls_gunit_main" ,
443
+ "//xls/common/status:matchers" ,
444
+ "//xls/dslx/frontend:ast" ,
445
+ "//xls/dslx/frontend:ast_node" ,
446
+ "//xls/dslx/frontend:pos" ,
447
+ "//xls/dslx/type_system:typecheck_test_utils" ,
448
+ "@com_google_absl//absl/algorithm:container" ,
449
+ "@com_google_absl//absl/container:flat_hash_map" ,
450
+ "@com_google_absl//absl/container:flat_hash_set" ,
451
+ "@com_google_absl//absl/log" ,
452
+ "@com_google_absl//absl/status" ,
453
+ "@com_google_absl//absl/status:statusor" ,
454
+ "@com_google_absl//absl/strings" ,
455
+ "@com_google_absl//absl/types:span" ,
456
+ "@googletest//:gtest" ,
457
+ ],
458
+ )
459
+
416
460
cc_library (
417
461
name = "type_system_test_utils" ,
418
462
testonly = True ,
@@ -681,6 +725,7 @@ cc_library(
681
725
":simplified_type_annotation_cache" ,
682
726
":type_annotation_filter" ,
683
727
":type_annotation_utils" ,
728
+ ":type_inference_error_handler" ,
684
729
":type_system_tracer" ,
685
730
":unify_type_annotations" ,
686
731
"//xls/common:casts" ,
@@ -706,6 +751,7 @@ cc_library(
706
751
"@com_google_absl//absl/status" ,
707
752
"@com_google_absl//absl/status:statusor" ,
708
753
"@com_google_absl//absl/strings" ,
754
+ "@com_google_absl//absl/types:span" ,
709
755
],
710
756
)
711
757
0 commit comments