Show the route to the abstract class element in error messages
commita0dc4a83b8dc2a43c44c5289f1c9ebdb9d161975
authorWilfred Hughes <wilfred@fb.com>
Tue, 3 May 2022 17:45:24 +0000 (3 10:45 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 3 May 2022 17:45:24 +0000 (3 10:45 -0700)
tree2b2418b69578df99b28033a99a37b05e5276c549
parentb4f38b22b8b9898c353308e3643540537c1b6cf9
Show the route to the abstract class element in error messages

Summary: In a large class hierarchy, it's not clear where abstract methods/properties/consts have come from. Include the route in the error message, so users can understand the source of the abstract item.

Reviewed By: zhyty

Differential Revision: D35956138

fbshipit-source-id: ae4bde1955e306918fff50766cb73f1322405e0e
26 files changed:
hphp/hack/src/errors/typing_error.ml
hphp/hack/src/errors/typing_error.mli
hphp/hack/src/typing/typing_extends.ml
hphp/hack/test/typecheck/abstract_implement4.php.exp
hphp/hack/test/typecheck/abstract_implement6.php.exp
hphp/hack/test/typecheck/abstract_methods/abstract_method_via_trait.php [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_methods/abstract_method_via_trait.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_typeconsts/redeclare_no_default.php.exp
hphp/hack/test/typecheck/abstract_typeconsts/redeclare_no_default2.php.exp
hphp/hack/test/typecheck/ambiguous_declaration_interface_trait.php.exp
hphp/hack/test/typecheck/const_attribute/static/abstract/abstract_parent_concrete_class.php.exp
hphp/hack/test/typecheck/const_attribute/static/abstract/abstract_parent_concrete_class.php.shallow_decl.exp
hphp/hack/test/typecheck/construct/abstract_constructor3.php.exp
hphp/hack/test/typecheck/construct/abstract_constructor5.php.exp
hphp/hack/test/typecheck/construct/bad_abstract_constructor.php.exp
hphp/hack/test/typecheck/enum_class/abstract.bad.php.exp
hphp/hack/test/typecheck/enum_class/abstract_diamond.bad.php.exp
hphp/hack/test/typecheck/enum_class/abstract_diamond.bad.php.shallow_decl.exp [copied from hphp/hack/test/typecheck/enum_class/abstract_diamond.bad.php.exp with 70% similarity]
hphp/hack/test/typecheck/enum_class/abstract_inheritance.bad.php.exp
hphp/hack/test/typecheck/tconst/abstract_final_tconst2.php.exp
hphp/hack/test/typecheck/tconst/abstract_type_in_concrete_class.php.exp
hphp/hack/test/typecheck/tconst/abstract_type_in_concrete_class_with_trait.php.exp
hphp/hack/test/typecheck/test_consts11.php.exp
hphp/hack/test/typecheck/trait_abstract_function.php.exp
hphp/hack/test/typecheck/trait_implements.php.exp
hphp/hack/test/typecheck/typing_fail_implement_abstract.php.exp