C#: Various fixes to generic scripts

- Report a diagnostic when there are multiple classes that match the script file name in the same script since that will result in a duplicate path key in the bimap and it's not allowed.
- Fix InspectorPlugin to handle empty paths in case the project was built with a previous version of Godot that used empty paths for generic scripts.
- Add tests for the new diagnostic GD0003.
This commit is contained in:
Raul Santos
2024-02-15 18:18:33 +01:00
parent ae51db75e7
commit fe280ef9ae
12 changed files with 126 additions and 28 deletions
@@ -0,0 +1,9 @@
using Godot;
namespace NamespaceA {
[ScriptPathAttribute("res://SameName.cs")]
partial class SameName
{
}
}
@@ -0,0 +1,18 @@
using Godot;
partial class Generic<T> : GodotObject
{
private int _field;
}
// Generic again but different generic parameters
partial class {|GD0003:Generic|}<T, R> : GodotObject
{
private int _field;
}
// Generic again but without generic parameters
partial class {|GD0003:Generic|} : GodotObject
{
private int _field;
}
@@ -4,15 +4,3 @@ partial class Generic<T> : GodotObject
{
private int _field;
}
// Generic again but different generic parameters
partial class Generic<T, R> : GodotObject
{
private int _field;
}
// Generic again but without generic parameters
partial class Generic : GodotObject
{
private int _field;
}
@@ -0,0 +1,18 @@
using Godot;
namespace NamespaceA
{
partial class SameName : GodotObject
{
private int _field;
}
}
// SameName again but different namespace
namespace NamespaceB
{
partial class {|GD0003:SameName|} : GodotObject
{
private int _field;
}
}