reactiveui / ReactiveUI.SourceGenerators

Use source generators to generate objects.
MIT License
31 stars 3 forks source link

[Bug]: Error with Source Generator when using nested types #133

Open lxy-iUnknown opened 1 week ago

lxy-iUnknown commented 1 week ago

Describe the bug 🐞

I'm encountering an issue with the ReactiveUI.SourceGenerators package (version 2.0.17) in my Avalonia project. After upgrading to this version, I receive the following warning during compilation:

ReactiveCommandGenerator\InnerClass.ReactiveCommands.g.cs(17,175): error CS0103: The name 'Test' does not exist in the current context

Step to reproduce

  1. Create a nested type
  2. Annotate method in nested type with [ReactiveCommand]
  3. Compile the project and observe the error.

Reproduction repository

https://github.com/lxy-iUnknown/ReactiveGeneratorSample

Expected behavior

The source generator should handle nested types without causing conflicts or errors.

Screenshots 🖼️

No response

IDE

Visual Studio 2022

Operating system

Windows 11

Version

2.0.17

Device

No response

ReactiveUI Version

No response

Additional information ℹ️

Generated code:


// <auto-generated/>

#pragma warning disable
#nullable enable

namespace ReactiveGeneratorSample
{
    /// <summary>
    /// Partial class for the InnerClass which contains ReactiveUI ReactiveCommand initialization.
    /// </summary>
    public partial class InnerClass
    {
        [global::System.CodeDom.Compiler.GeneratedCode("ReactiveUI.SourceGenerators.ReactiveCommandGenerator", "2.0.0.0")]
        private ReactiveUI.ReactiveCommand<global::System.Reactive.Unit, global::System.Reactive.Unit>? _testCommand;

        [global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
        public ReactiveUI.ReactiveCommand<global::System.Reactive.Unit, global::System.Reactive.Unit> TestCommand { get => _testCommand ??= ReactiveUI.ReactiveCommand.Create(Test); }
    }
}
#nullable restore
#pragma warning restore