Skip to content

Commit b42524a

Browse files
javachemeta-codesync[bot]
authored andcommitted
Make shadow node traits constexpr (#59658)
Summary: Pull Request resolved: #59658 Allow shadow node traits and built-in trait factories to be evaluated in constant expressions while preserving runtime mutation and custom component behaviour. Changelog: [General][Added] - Allow C++ shadow node traits to be evaluated at compile time Differential Revision: D128570015
1 parent 54905a2 commit b42524a

30 files changed

Lines changed: 178 additions & 122 deletions

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ImageShadowNode final
3030
public:
3131
using ConcreteViewShadowNode::ConcreteViewShadowNode;
3232

33-
static ShadowNodeTraits BaseTraits()
33+
static constexpr ShadowNodeTraits BaseTraits()
3434
{
3535
auto traits = ConcreteViewShadowNode::BaseTraits();
3636
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

‎packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class InputAccessoryShadowNode final : public ConcreteViewShadowNode<
2929
public:
3030
using ConcreteViewShadowNode::ConcreteViewShadowNode;
3131

32-
static ShadowNodeTraits BaseTraits()
32+
static constexpr ShadowNodeTraits BaseTraits()
3333
{
3434
auto traits = ConcreteViewShadowNode::BaseTraits();
3535
traits.set(ShadowNodeTraits::Trait::RootNodeKind);

‎packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ModalHostViewShadowNode final : public ConcreteViewShadowNode<
2929
public:
3030
using ConcreteViewShadowNode::ConcreteViewShadowNode;
3131

32-
static ShadowNodeTraits BaseTraits()
32+
static constexpr ShadowNodeTraits BaseTraits()
3333
{
3434
auto traits = ConcreteViewShadowNode::BaseTraits();
3535
traits.set(ShadowNodeTraits::Trait::RootNodeKind);

‎packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AndroidProgressBarShadowNode final : public ConcreteViewShadowNode<
2828
public:
2929
using ConcreteViewShadowNode::ConcreteViewShadowNode;
3030

31-
static ShadowNodeTraits BaseTraits()
31+
static constexpr ShadowNodeTraits BaseTraits()
3232
{
3333
auto traits = ConcreteViewShadowNode::BaseTraits();
3434
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

‎packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class RootShadowNode final : public ConcreteViewShadowNode<RootComponentName, Ro
3434
using Shared = std::shared_ptr<const RootShadowNode>;
3535
using Unshared = std::shared_ptr<RootShadowNode>;
3636

37-
static ShadowNodeTraits BaseTraits()
37+
static constexpr ShadowNodeTraits BaseTraits()
3838
{
3939
auto traits = ConcreteViewShadowNode::BaseTraits();
4040
traits.set(ShadowNodeTraits::Trait::RootNodeKind);

‎packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AndroidSwitchShadowNode final
2828
public:
2929
using ConcreteViewShadowNode::ConcreteViewShadowNode;
3030

31-
static ShadowNodeTraits BaseTraits()
31+
static constexpr ShadowNodeTraits BaseTraits()
3232
{
3333
auto traits = ConcreteViewShadowNode::BaseTraits();
3434
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

‎packages/react-native/ReactCommon/react/renderer/components/switch/iosswitch/react/renderer/components/switch/AppleSwitchShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class SwitchShadowNode final
2525
public:
2626
using ConcreteViewShadowNode::ConcreteViewShadowNode;
2727

28-
static ShadowNodeTraits BaseTraits()
28+
static constexpr ShadowNodeTraits BaseTraits()
2929
{
3030
auto traits = ConcreteViewShadowNode::BaseTraits();
3131
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

‎packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ParagraphShadowNode
4040

4141
ParagraphShadowNode(const ShadowNode &sourceShadowNode, const ShadowNodeFragment &fragment);
4242

43-
static ShadowNodeTraits BaseTraits()
43+
static constexpr ShadowNodeTraits BaseTraits()
4444
{
4545
auto traits = ConcreteViewShadowNode::BaseTraits();
4646
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

‎packages/react-native/ReactCommon/react/renderer/components/text/TextShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ using TextEventEmitter = TouchEventEmitter;
2525
class TextShadowNode : public ConcreteShadowNode<TextComponentName, ShadowNode, TextProps, TextEventEmitter>,
2626
public BaseTextShadowNode {
2727
public:
28-
static ShadowNodeTraits BaseTraits()
28+
static constexpr ShadowNodeTraits BaseTraits()
2929
{
3030
auto traits = ConcreteShadowNode::BaseTraits();
3131
#ifdef ANDROID

‎packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class BaseTextInputShadowNode
4747

4848
using BaseShadowNode::ConcreteViewShadowNode;
4949

50-
static ShadowNodeTraits BaseTraits()
50+
static constexpr ShadowNodeTraits BaseTraits()
5151
{
5252
auto traits = BaseShadowNode::BaseTraits();
5353
traits.set(ShadowNodeTraits::Trait::LeafYogaNode);

0 commit comments

Comments
 (0)