diff --git a/tutorials/scripting/c_sharp/diagnostics/GD0003.rst b/tutorials/scripting/c_sharp/diagnostics/GD0003.rst new file mode 100644 index 00000000000..76777ccd1be --- /dev/null +++ b/tutorials/scripting/c_sharp/diagnostics/GD0003.rst @@ -0,0 +1,49 @@ +GD0003: Found multiple classes with the same name in the same script file +========================================================================= + +==================================== ====================================== + Value +==================================== ====================================== +**Rule ID** GD0003 +**Category** Usage +**Fix is breaking or non-breaking** Non-breaking +**Enabled by default** Yes +==================================== ====================================== + +Cause +----- + +A script file contains multiple types that derives from ``GodotObject`` with +a name that matches the script file. Only one type in the script file should +match the file name. + +Rule description +---------------- + +Godot requires scripts to have a unique path so every type must be defined on its +own file and the type name must match the file name. + +.. code-block:: csharp + + public partial class MyNode : Node { } + + namespace DifferentNamespace + { + // Invalid because there's already a type with the name MyNode in this file. + public partial class MyNode : Node { } + } + + // Invalid because there's already a type with the name MyNode in this file. + public partial class MyNode : Node { } + +How to fix violations +--------------------- + +To fix a violation of this rule, move each type declaration to a different file. + +When to suppress warnings +------------------------- + +Do not suppress a warning from this rule. Types that derive from ``GodotObject`` +must have a unique path otherwise the engine can't load the script by path, +resulting in unexpected runtime errors. diff --git a/tutorials/scripting/c_sharp/diagnostics/index.rst b/tutorials/scripting/c_sharp/diagnostics/index.rst index a54976dac00..42a68bc1be2 100644 --- a/tutorials/scripting/c_sharp/diagnostics/index.rst +++ b/tutorials/scripting/c_sharp/diagnostics/index.rst @@ -17,6 +17,7 @@ Rules GD0001 GD0002 + GD0003 GD0101 GD0102 GD0103