diff --git a/OneOf.SourceGenerator.AnalyzerTests/AnalyzerTests.cs b/OneOf.SourceGenerator.AnalyzerTests/AnalyzerTests.cs index c061f9f..796550b 100644 --- a/OneOf.SourceGenerator.AnalyzerTests/AnalyzerTests.cs +++ b/OneOf.SourceGenerator.AnalyzerTests/AnalyzerTests.cs @@ -49,7 +49,7 @@ namespace Foo { partial class StringOrNumber { - public StringOrNumber(OneOf.OneOf _) : base(_) { } + public StringOrNumber(global::OneOf.OneOf _) : base(_) { } public static implicit operator StringOrNumber(string _) => new StringOrNumber(_); public static explicit operator string(StringOrNumber _) => _.AsT0; @@ -85,7 +85,7 @@ namespace Foo { partial class StringOrNumber { - public StringOrNumber(OneOf.OneOf _) : base(_) { } + public StringOrNumber(global::OneOf.OneOf _) : base(_) { } public static implicit operator StringOrNumber(string _) => new StringOrNumber(_); public static explicit operator string(StringOrNumber _) => _.AsT0; @@ -121,7 +121,7 @@ namespace Foo { partial class StringOrNumber { - public StringOrNumber(OneOf.OneOf _) : base(_) { } + public StringOrNumber(global::OneOf.OneOf _) : base(_) { } public static implicit operator StringOrNumber(string _) => new StringOrNumber(_); public static explicit operator string(StringOrNumber _) => _.AsT0; @@ -245,7 +245,7 @@ namespace Foo { partial class FooBar { - public FooBar(OneOf.OneOf _) : base(_) { } + public FooBar(global::OneOf.OneOf _) : base(_) { } public static implicit operator FooBar(global::Foo.Bar.Class1 _) => new FooBar(_); public static explicit operator global::Foo.Bar.Class1(FooBar _) => _.AsT0; diff --git a/OneOf.SourceGenerator.Tests/SourceGeneratorTests.cs b/OneOf.SourceGenerator.Tests/SourceGeneratorTests.cs index 54629a9..e74ae88 100644 --- a/OneOf.SourceGenerator.Tests/SourceGeneratorTests.cs +++ b/OneOf.SourceGenerator.Tests/SourceGeneratorTests.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using OneOf; using Xunit; namespace OneOf.SourceGenerator.Tests @@ -129,6 +130,13 @@ public void GenerateOneOf_Works_With_Open_And_Closed_Generics() OpenGenericWithClosed openWithClosed2 = new MyClass(); Assert.True(openWithClosed2.IsT1); } + + [Fact] + public void GenerateOneOf_Works_WithTypesFromOneOfNameSpace() + { + DifferentLibrary.OneOf.JustLibraryClass justLibraryClass = new DifferentLibrary.OneOf.LibraryClass(); + Assert.True(justLibraryClass.IsT0); + } } [GenerateOneOf] @@ -184,3 +192,15 @@ public class OneOf } } + +namespace DifferentLibrary.OneOf +{ + public class LibraryClass + { + } + + [GenerateOneOf] + public partial class JustLibraryClass : OneOfBase + { + } +} diff --git a/OneOf.SourceGenerator/OneOfGenerator.cs b/OneOf.SourceGenerator/OneOfGenerator.cs index caf411b..e745fdd 100644 --- a/OneOf.SourceGenerator/OneOfGenerator.cs +++ b/OneOf.SourceGenerator/OneOfGenerator.cs @@ -84,7 +84,7 @@ partial class {classNameWithGenericTypes}"); source.Append($@" {{ - public {classSymbol.Name}(OneOf.OneOf<{oneOfGenericPart}> _) : base(_) {{ }} + public {classSymbol.Name}(global::OneOf.OneOf<{oneOfGenericPart}> _) : base(_) {{ }} "); foreach (var (param, arg) in paramArgPairs)