mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
C#: Add global::
namespace to generated source
Adds `global::` to the fully qualified types in source generators to prevent ambiguity.
This commit is contained in:
parent
5923df9234
commit
b9e1ca1e86
12 changed files with 108 additions and 91 deletions
|
@ -75,13 +75,13 @@ namespace Godot.SourceGenerators
|
|||
{
|
||||
INamespaceSymbol namespaceSymbol = symbol.ContainingNamespace;
|
||||
string classNs = namespaceSymbol != null && !namespaceSymbol.IsGlobalNamespace ?
|
||||
namespaceSymbol.FullQualifiedName() :
|
||||
namespaceSymbol.FullQualifiedNameOmitGlobal() :
|
||||
string.Empty;
|
||||
bool hasNamespace = classNs.Length != 0;
|
||||
|
||||
bool isInnerClass = symbol.ContainingType != null;
|
||||
|
||||
string uniqueHint = symbol.FullQualifiedName().SanitizeQualifiedNameForUniqueHint()
|
||||
string uniqueHint = symbol.FullQualifiedNameOmitGlobal().SanitizeQualifiedNameForUniqueHint()
|
||||
+ "_ScriptSignals.generated";
|
||||
|
||||
var source = new StringBuilder();
|
||||
|
@ -176,14 +176,14 @@ namespace Godot.SourceGenerators
|
|||
|
||||
source.Append("#pragma warning disable CS0109 // Disable warning about redundant 'new' keyword\n");
|
||||
|
||||
source.Append($" public new class SignalName : {symbol.BaseType.FullQualifiedName()}.SignalName {{\n");
|
||||
source.Append($" public new class SignalName : {symbol.BaseType.FullQualifiedNameIncludeGlobal()}.SignalName {{\n");
|
||||
|
||||
// Generate cached StringNames for methods and properties, for fast lookup
|
||||
|
||||
foreach (var signalDelegate in godotSignalDelegates)
|
||||
{
|
||||
string signalName = signalDelegate.Name;
|
||||
source.Append(" public new static readonly StringName ");
|
||||
source.Append(" public new static readonly global::Godot.StringName ");
|
||||
source.Append(signalName);
|
||||
source.Append(" = \"");
|
||||
source.Append(signalName);
|
||||
|
@ -196,7 +196,7 @@ namespace Godot.SourceGenerators
|
|||
|
||||
if (godotSignalDelegates.Count > 0)
|
||||
{
|
||||
const string listType = "System.Collections.Generic.List<global::Godot.Bridge.MethodInfo>";
|
||||
const string listType = "global::System.Collections.Generic.List<global::Godot.Bridge.MethodInfo>";
|
||||
|
||||
source.Append(" internal new static ")
|
||||
.Append(listType)
|
||||
|
@ -231,15 +231,15 @@ namespace Godot.SourceGenerators
|
|||
// as it doesn't emit the signal, only the event delegates. This can confuse users.
|
||||
// Maybe we should directly connect the delegates, as we do with native signals?
|
||||
source.Append(" private ")
|
||||
.Append(signalDelegate.DelegateSymbol.FullQualifiedName())
|
||||
.Append(signalDelegate.DelegateSymbol.FullQualifiedNameIncludeGlobal())
|
||||
.Append(" backing_")
|
||||
.Append(signalName)
|
||||
.Append(";\n");
|
||||
|
||||
source.Append($" /// <inheritdoc cref=\"{signalDelegate.DelegateSymbol.FullQualifiedName()}\"/>\n");
|
||||
source.Append($" /// <inheritdoc cref=\"{signalDelegate.DelegateSymbol.FullQualifiedNameIncludeGlobal()}\"/>\n");
|
||||
|
||||
source.Append(" public event ")
|
||||
.Append(signalDelegate.DelegateSymbol.FullQualifiedName())
|
||||
.Append(signalDelegate.DelegateSymbol.FullQualifiedNameIncludeGlobal())
|
||||
.Append(" ")
|
||||
.Append(signalName)
|
||||
.Append(" {\n")
|
||||
|
@ -300,7 +300,7 @@ namespace Godot.SourceGenerators
|
|||
|
||||
AppendPropertyInfo(source, methodInfo.ReturnVal);
|
||||
|
||||
source.Append(", flags: (Godot.MethodFlags)")
|
||||
source.Append(", flags: (global::Godot.MethodFlags)")
|
||||
.Append((int)methodInfo.Flags)
|
||||
.Append(", arguments: ");
|
||||
|
||||
|
@ -328,15 +328,15 @@ namespace Godot.SourceGenerators
|
|||
|
||||
private static void AppendPropertyInfo(StringBuilder source, PropertyInfo propertyInfo)
|
||||
{
|
||||
source.Append("new(type: (Godot.Variant.Type)")
|
||||
source.Append("new(type: (global::Godot.Variant.Type)")
|
||||
.Append((int)propertyInfo.Type)
|
||||
.Append(", name: \"")
|
||||
.Append(propertyInfo.Name)
|
||||
.Append("\", hint: (Godot.PropertyHint)")
|
||||
.Append("\", hint: (global::Godot.PropertyHint)")
|
||||
.Append((int)propertyInfo.Hint)
|
||||
.Append(", hintString: \"")
|
||||
.Append(propertyInfo.HintString)
|
||||
.Append("\", usage: (Godot.PropertyUsageFlags)")
|
||||
.Append("\", usage: (global::Godot.PropertyUsageFlags)")
|
||||
.Append((int)propertyInfo.Usage)
|
||||
.Append(", exported: ")
|
||||
.Append(propertyInfo.Exported ? "true" : "false")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue