diff --git a/source/blender/blenkernel/intern/node_tree_structure_type_inferencing.cc b/source/blender/blenkernel/intern/node_tree_structure_type_inferencing.cc index 0fc4576e303..9d10810773e 100644 --- a/source/blender/blenkernel/intern/node_tree_structure_type_inferencing.cc +++ b/source/blender/blenkernel/intern/node_tree_structure_type_inferencing.cc @@ -452,21 +452,9 @@ static StructureType left_to_right_merge(const StructureType a, const StructureT if (a == b) { return a; } - if ((a == StructureType::Dynamic && b == StructureType::Single) || - (a == StructureType::Single && b == StructureType::Dynamic)) - { + if (a == StructureType::Dynamic || b == StructureType::Dynamic) { return StructureType::Dynamic; } - if ((a == StructureType::Dynamic && b == StructureType::Field) || - (a == StructureType::Field && b == StructureType::Dynamic)) - { - return StructureType::Dynamic; - } - if ((a == StructureType::Dynamic && b == StructureType::Grid) || - (a == StructureType::Grid && b == StructureType::Dynamic)) - { - return StructureType::Grid; - } if ((a == StructureType::Field && b == StructureType::Grid) || (a == StructureType::Grid && b == StructureType::Field)) { @@ -482,6 +470,16 @@ static StructureType left_to_right_merge(const StructureType a, const StructureT { return StructureType::Grid; } + if ((a == StructureType::Single && b == StructureType::List) || + (a == StructureType::List && b == StructureType::Single)) + { + return StructureType::List; + } + if ((a == StructureType::Field && b == StructureType::List) || + (a == StructureType::List && b == StructureType::Field)) + { + return StructureType::List; + } /* Invalid combination. */ return a; } diff --git a/tests/python/bl_node_structure_type_inference.py b/tests/python/bl_node_structure_type_inference.py index 46d76c94531..7b235415cd4 100644 --- a/tests/python/bl_node_structure_type_inference.py +++ b/tests/python/bl_node_structure_type_inference.py @@ -123,7 +123,7 @@ class StructureTypeInferenceTest(unittest.TestCase): self.assertDynamic(node.inputs["auto+single"]) self.assertDynamic(node.inputs["auto+dynamic"]) self.assertDynamic(node.inputs["auto+field"]) - self.assertGrid(node.inputs["auto+grid"]) + self.assertDynamic(node.inputs["auto+grid"]) self.assertSingle(node.inputs["single+single"]) self.assertDynamic(node.inputs["single+dynamic"]) @@ -132,7 +132,7 @@ class StructureTypeInferenceTest(unittest.TestCase): self.assertDynamic(node.inputs["dynamic+dynamic"]) self.assertDynamic(node.inputs["dynamic+field"]) - self.assertGrid(node.inputs["dynamic+grid"]) + self.assertDynamic(node.inputs["dynamic+grid"]) self.assertField(node.inputs["field+field"]) self.assertGrid(node.inputs["field+grid"])