Ban instance properties on abstract final classes
commite9ca03d856ead02eb9845a3d604029846effa5ae
authorMax Heiber <mheiber@fb.com>
Fri, 28 Aug 2020 10:11:46 +0000 (28 03:11 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Fri, 28 Aug 2020 10:13:53 +0000 (28 03:13 -0700)
treeed6904c08f160eb8bc2f92439c3b8d0d3189f69a
parent85f75756aa4dbba731636a5dc07e70df669feff3
Ban instance properties on abstract final classes

Summary:
Ban instance properties on abstract final classes such as:

```
abstract final class Foo {
  public int $foo;
}
```

But *allow* XHP attributes:

```
abstract final class :foo {
  attribute string foobar;
}
class :bar {
  attribute :foo;
}
```

Reviewed By: Wilfred

Differential Revision: D23323178

fbshipit-source-id: 6399b6c511fecd596bd8285c10eeb376dd350ddd
12 files changed:
hphp/hack/src/errors/error_codes.ml
hphp/hack/src/errors/errors.ml
hphp/hack/src/errors/errors.mli
hphp/hack/src/typing/tast_check/abstract_class_check.ml
hphp/hack/test/errors/error_map.ml
hphp/hack/test/typecheck/abstract_final_instance_property.php [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_instance_property.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_static_property.exp [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_static_property.php [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_static_property.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_xhp_property.php [new file with mode: 0644]
hphp/hack/test/typecheck/abstract_final_xhp_property.php.exp [new file with mode: 0644]