mirror of
https://github.com/status-im/react-native.git
synced 2025-02-04 21:53:30 +00:00
Adding Wrapper
suffix to EventHandler
and EventHandler
type names
Summary: It's maybe not so important/crucial, but this thing bothers me a lot. We use raw opaque `EventTarget`, `InstanceHandle` and `EventHandler` pointers in application layer quite a lot and we don't have any kind of type-safety here. I believe all those opaque types should be represented as named scalar types which compiler at least can differentiate at compile time. So I propose introducing named aliases for them which will point to particular empty `struct`s. This will allow us to tag types properly in all functions and methods and ensure that we pass right values as right arguments. Again, they are *just aliases*, which are effectively still `void *`, no any additional logic or names are involved. Unfortunately, those nice type names are already taken by `JSIFabricUIManager` local anonymous namespace (even if they are inside anonymous namespace we cannot use them https://stackoverflow.com/questions/3673353/anonymous-namespace-ambiguity). I think it's fair to rename them because... it's local. And we already use `Wrapper` suffix for them anyways. Reviewed By: fkgozali Differential Revision: D8181151 fbshipit-source-id: 9b55b43fb671a56b32a862ac54f78d528e1188ce
This commit is contained in:
parent
57e7556b8d
commit
957ef606b9
@ -22,5 +22,11 @@ enum class EventPriority {
|
||||
Deferred = AsynchronousBatched,
|
||||
};
|
||||
|
||||
// `InstanceHandler`, `EventTarget`, and `EventHandler` are all opaque
|
||||
// raw pointers. We use `struct {} *` trick to differentiate them in compiler's
|
||||
// eyes to ensure type safety.
|
||||
using EventTarget = struct {} *;
|
||||
using EventHandler = struct {} *;
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
Loading…
x
Reference in New Issue
Block a user