diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/Providers/ModelProvider.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/Providers/ModelProvider.cs index aa9401e9d59..66b482d8ffb 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/Providers/ModelProvider.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/Providers/ModelProvider.cs @@ -32,6 +32,10 @@ protected override FormattableString BuildDescription() { _derivedModels = BuildDerivedModels(); var publicDerivedModels = _derivedModels.Where(m => m.DeclarationModifiers.HasFlag(TypeSignatureModifiers.Public)).ToList(); + if (publicDerivedModels.Count == 0) + { + return description; + } var derivedClassesDescription = DeclarationModifiers.HasFlag(TypeSignatureModifiers.Abstract) ? "Please note this is the abstract base class. The derived classes available for instantiation are: " : "Please note this is the base class. The derived classes available for instantiation are: "; diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/Providers/ModelProviders/ModelProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/Providers/ModelProviders/ModelProviderTests.cs index f0c040b1432..ad9e56434b1 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/Providers/ModelProviders/ModelProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/test/Providers/ModelProviders/ModelProviderTests.cs @@ -28,6 +28,24 @@ public void Setup() MockHelpers.LoadMockGenerator(); } + [Test] + public void TestBuildDescription_SkipsDerivedClassesTextWhenNoPublicDerivedModels() + { + var discriminator = InputFactory.Property("kind", InputPrimitiveType.String, isRequired: true, isDiscriminator: true); + var internalDerived = InputFactory.Model("InternalDerived", access: "internal"); + var baseModel = InputFactory.Model( + "BaseModel", + properties: [discriminator], + derivedModels: [internalDerived], + discriminatorProperty: discriminator); + MockHelpers.LoadMockGenerator(inputModelTypes: [baseModel, internalDerived]); + + var provider = CodeModelGenerator.Instance.TypeFactory.CreateModel(baseModel); + + Assert.IsNotNull(provider); + Assert.AreEqual("BaseModel description", provider!.Description.ToString()); + } + [Test] public void TestBuildProperties_ValidateInheritHierarchyWithOverride() {