Skip to content

Commit 9d2f8ea

Browse files
generatedunixname1202473815430210meta-codesync[bot]
authored andcommitted
change BUILTIN_ENUM constant in systemlib to be a ptr
Reviewed By: vassilmladenov, DavidSnider Differential Revision: D116694112 fbshipit-source-id: aa8ce95455e7de735cf99fcd5935346e0251b5a9
1 parent 6087238 commit 9d2f8ea

11 files changed

Lines changed: 35 additions & 34 deletions

File tree

hphp/hack/hhi/BuiltinEnum.hhi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*
1414
* YOU SHOULD NEVER INCLUDE THIS FILE ANYWHERE!!!
1515
*/
16+
<<file: __EnableUnstableFeatures('class_type')>>
1617
namespace HH {
1718

1819
/**
@@ -76,7 +77,7 @@ namespace HH {
7677

7778
type enumname<T> = classname<BuiltinEnum<T>>;
7879

79-
const enumname<arraykey> BUILTIN_ENUM;
80+
const enum<arraykey> BUILTIN_ENUM;
8081

8182
/**
8283
* Wrapper for enum class

hphp/hack/test/decl/enum_class.php.typecheck.exp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Wrong type hint (Typing[4338])
88
But got `arraykey`
99
File "enum_class.php", line 12, characters 3-10:
1010
by the definition of `HH\MemberOf`
11-
File "BuiltinEnum.hhi", line 84, characters 44-48:
11+
File "BuiltinEnum.hhi", line 85, characters 44-48:
1212
via this generic `TType`
1313
ERROR: File "enum_class.php", line 8, characters 7-7:
1414
Wrong type hint (Typing[4338])
@@ -18,7 +18,7 @@ Wrong type hint (Typing[4338])
1818
But got `arraykey`
1919
File "enum_class.php", line 12, characters 3-10:
2020
by the definition of `HH\MemberOf`
21-
File "BuiltinEnum.hhi", line 84, characters 44-48:
21+
File "BuiltinEnum.hhi", line 85, characters 44-48:
2222
via this generic `TType`
2323
ERROR: File "enum_class.php", line 12, characters 12-12:
2424
Constant does not match the type of the enum it is in (Typing[4328])

hphp/hack/test/integration/test_lsp.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,7 +1337,7 @@ def test_serverless_ide_completion(self) -> None:
13371337
"data": {
13381338
"fullname": "isValid",
13391339
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1340-
"line": 51,
1340+
"line": 52,
13411341
"char": 34,
13421342
"base_class": "\\Elsa",
13431343
},
@@ -1358,7 +1358,7 @@ def test_serverless_ide_completion(self) -> None:
13581358
"data": {
13591359
"fullname": "getValues",
13601360
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1361-
"line": 34,
1361+
"line": 35,
13621362
"char": 34,
13631363
"base_class": "\\Elsa",
13641364
},
@@ -1379,7 +1379,7 @@ def test_serverless_ide_completion(self) -> None:
13791379
"data": {
13801380
"fullname": "getNames",
13811381
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1382-
"line": 43,
1382+
"line": 44,
13831383
"char": 34,
13841384
"base_class": "\\Elsa",
13851385
},
@@ -1400,7 +1400,7 @@ def test_serverless_ide_completion(self) -> None:
14001400
"data": {
14011401
"fullname": "coerce",
14021402
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1403-
"line": 58,
1403+
"line": 59,
14041404
"char": 34,
14051405
"base_class": "\\Elsa",
14061406
},
@@ -1421,7 +1421,7 @@ def test_serverless_ide_completion(self) -> None:
14211421
"data": {
14221422
"fullname": "assertAll",
14231423
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1424-
"line": 72,
1424+
"line": 73,
14251425
"char": 34,
14261426
"base_class": "\\Elsa",
14271427
},
@@ -1442,7 +1442,7 @@ def test_serverless_ide_completion(self) -> None:
14421442
"data": {
14431443
"fullname": "assert",
14441444
"filename": "/tmp/catg/tmpykiuvuh4/hhi_7a9178f/BuiltinEnum.hhi",
1445-
"line": 65,
1445+
"line": 66,
14461446
"char": 34,
14471447
"base_class": "\\Elsa",
14481448
},

hphp/hack/test/typecheck/class_pointers/type_separate/enum_hint.php.exp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ ERROR: File "enum_hint.php", line 17, characters 10-11:
1616
Invalid return type (Typing[4110])
1717
File "enum_hint.php", line 16, characters 49-51:
1818
Expected `int`
19-
File "BuiltinEnum.hhi", line 77, characters 44-44:
19+
File "BuiltinEnum.hhi", line 78, characters 44-44:
2020
via this generic `T`
2121
File "enum_hint.php", line 16, characters 24-29:
2222
But got `arraykey`
23-
File "BuiltinEnum.hhi", line 77, characters 44-44:
23+
File "BuiltinEnum.hhi", line 78, characters 44-44:
2424
via this generic `T`
2525
File "enum_hint.php", line 16, characters 24-29:
2626
by the definition of `Opaque` arising from an implicit `as arraykey` constraint on this type

hphp/hack/test/typecheck/enum_class/typing.extends5.bad.php.exp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
66
Enum F includes enum NormalEnum but their base types are incompatible (Typing[4388])
77
ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
88
Some members in class `F` are incompatible with those declared in type `NormalEnum` (Typing[4341])
9-
File "BuiltinEnum.hhi", line 139, characters 34-42:
9+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1010
The method `getValues` is not compatible with the overridden method
11-
File "BuiltinEnum.hhi", line 139, characters 34-42:
11+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1212
Method `getValues` has type `(function()[HH\Contexts\write_props]: dict<string, HH\MemberOf<F, ExBox>>)` in `F` and comes from ancestor or trait `HH\BuiltinEnumClass<HH\MemberOf<F, ExBox>>`
13-
File "BuiltinEnum.hhi", line 34, characters 34-42:
13+
File "BuiltinEnum.hhi", line 35, characters 34-42:
1414
But it has type `(function()[]: dict<string, NormalEnum>)` in parent `NormalEnum` and comes from ancestor or trait `HH\BuiltinEnum<NormalEnum>`
15-
File "BuiltinEnum.hhi", line 139, characters 34-42:
15+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1616
Type `(function()[HH\Contexts\write_props]: dict<string, HH\MemberOf<F, ExBox>>)` is not a subtype of `(function()[]: dict<string, NormalEnum>)`
17-
File "BuiltinEnum.hhi", line 34, characters 45-46:
17+
File "BuiltinEnum.hhi", line 35, characters 45-46:
1818
Expected a function that requires the capability set {}
19-
File "BuiltinEnum.hhi", line 139, characters 46-56:
19+
File "BuiltinEnum.hhi", line 140, characters 46-56:
2020
But got a function that requires the capability WriteProperty
2121
ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
2222
Some members in class `F` are incompatible with those declared in type `NormalEnum` (Typing[4070])
23-
File "BuiltinEnum.hhi", line 139, characters 34-42:
23+
File "BuiltinEnum.hhi", line 140, characters 34-42:
2424
You cannot override this method
25-
File "BuiltinEnum.hhi", line 34, characters 34-42:
25+
File "BuiltinEnum.hhi", line 35, characters 34-42:
2626
It was declared as final

hphp/hack/test/typecheck/enum_class/typing.extends5.bad.php.imp_pess_exp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
66
Enum F includes enum NormalEnum but their base types are incompatible (Typing[4388])
77
ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
88
Some members in class `F` are incompatible with those declared in type `NormalEnum` (Typing[4341])
9-
File "BuiltinEnum.hhi", line 139, characters 34-42:
9+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1010
The method `getValues` is not compatible with the overridden method
11-
File "BuiltinEnum.hhi", line 139, characters 34-42:
11+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1212
Method `getValues` has type `(function()[HH\Contexts\write_props]: ~dict<string, HH\MemberOf<F, ExBox>>)` in `F` and comes from ancestor or trait `HH\BuiltinEnumClass<HH\MemberOf<F, ExBox>>`
13-
File "BuiltinEnum.hhi", line 34, characters 34-42:
13+
File "BuiltinEnum.hhi", line 35, characters 34-42:
1414
But it has type `(function()[]: dict<string, NormalEnum>)` in parent `NormalEnum` and comes from ancestor or trait `HH\BuiltinEnum<NormalEnum>`
15-
File "BuiltinEnum.hhi", line 139, characters 34-42:
15+
File "BuiltinEnum.hhi", line 140, characters 34-42:
1616
Type `(function()[HH\Contexts\write_props]: ~dict<string, HH\MemberOf<F, ExBox>>)` is not a subtype of `(function()[]: dict<string, NormalEnum>)`
17-
File "BuiltinEnum.hhi", line 34, characters 45-46:
17+
File "BuiltinEnum.hhi", line 35, characters 45-46:
1818
Expected a function that requires the capability set {}
19-
File "BuiltinEnum.hhi", line 139, characters 46-56:
19+
File "BuiltinEnum.hhi", line 140, characters 46-56:
2020
But got a function that requires the capability WriteProperty
2121
ERROR: File "typing.extends5.bad.php", line 25, characters 29-38:
2222
Some members in class `F` are incompatible with those declared in type `NormalEnum` (Typing[4070])
23-
File "BuiltinEnum.hhi", line 139, characters 34-42:
23+
File "BuiltinEnum.hhi", line 140, characters 34-42:
2424
You cannot override this method
25-
File "BuiltinEnum.hhi", line 34, characters 34-42:
25+
File "BuiltinEnum.hhi", line 35, characters 34-42:
2626
It was declared as final
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
ERROR: File "valueOf.php", line 29, characters 11-17:
22
No static method `valueOf` in `E` (Typing[4090])
3-
File "BuiltinEnum.hhi", line 117, characters 34-39:
3+
File "BuiltinEnum.hhi", line 118, characters 34-39:
44
Did you mean `nameOf` instead?
55
File "valueOf.php", line 4, characters 21-21:
66
Declaration of `E` is here
77
ERROR: File "valueOf.php", line 31, characters 11-17:
88
No static method `valueOf` in `E` (Typing[4090])
9-
File "BuiltinEnum.hhi", line 117, characters 34-39:
9+
File "BuiltinEnum.hhi", line 118, characters 34-39:
1010
Did you mean `nameOf` instead?
1111
File "valueOf.php", line 4, characters 21-21:
1212
Declaration of `E` is here

hphp/hack/test/typecheck/fc_enum_12.php.exp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ ERROR: File "fc_enum_12.php", line 4, characters 14-27:
22
`HH\BuiltinEnum` is an implementation internal class that cannot be used directly (Naming[2053])
33
ERROR: File "fc_enum_12.php", line 4, characters 14-27:
44
Wrong number of type arguments (expected 1, got 0) (Typing[4101])
5-
File "BuiltinEnum.hhi", line 26, characters 18-28:
5+
File "BuiltinEnum.hhi", line 27, characters 18-28:
66
Definition is here

hphp/hack/test/typecheck/fc_enum_13.php.exp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ ERROR: File "fc_enum_13.php", line 5, characters 18-31:
22
`HH\BuiltinEnum` is an implementation internal class that cannot be used directly (Naming[2053])
33
ERROR: File "fc_enum_13.php", line 5, characters 18-31:
44
Wrong number of type arguments (expected 1, got 0) (Typing[4101])
5-
File "BuiltinEnum.hhi", line 26, characters 18-28:
5+
File "BuiltinEnum.hhi", line 27, characters 18-28:
66
Definition is here

hphp/hack/test/typecheck/fc_enum_9.php.exp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Invalid return type (Typing[4110])
44
Expected `int`
55
File "fc_enum_9.php", line 3, characters 6-8:
66
But got `arraykey`
7-
File "BuiltinEnum.hhi", line 34, characters 64-64:
7+
File "BuiltinEnum.hhi", line 35, characters 64-64:
88
via this generic `T`
99
File "fc_enum_9.php", line 3, characters 6-8:
1010
by the definition of `Foo` arising from an implicit `as arraykey` constraint on this type

0 commit comments

Comments
 (0)