Skip to content

Commit 1e6bd54

Browse files
authored
Fix VB default value for class parameters bug (#499)
* Fix VB default value for class parameters bug https://ceapex.visualstudio.com/Engineering/_workitems/edit/221125
1 parent 72481ad commit 1e6bd54

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

mdoc/Mono.Documentation/Updater/Formatters/VBFullMemberFormatter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,8 @@ private StringBuilder AppendParameter(StringBuilder buf, ParameterDefinition par
583583
buf.Append(GetTypeName(parameter.ParameterType, new DynamicParserContext(parameter)));
584584
if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant)
585585
{
586-
buf.AppendFormat(" = {0}", MDocUpdater.MakeAttributesValueString(parameter.Constant, parameter.ParameterType));
586+
var parameterValue = MDocUpdater.MakeAttributesValueString(parameter.Constant, parameter.ParameterType);
587+
buf.AppendFormat(" = {0}", parameterValue == "null" ? "Nothing" : parameterValue);
587588
}
588589
return buf;
589590
}

mdoc/mdoc.Test/VBFormatterTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,14 @@ public void Params()
124124
Assert.AreEqual("Public Sub DoSomethingWithParams (ParamArray values As Integer())", sig);
125125
}
126126

127+
[Test]
128+
public void DefaultNullValueForParams()
129+
{
130+
var member = GetMethod(typeof(SomeGenericClass<>), m => m.Name == "SomeMethod4");
131+
var sig = formatter.GetDeclaration(member);
132+
Assert.AreEqual("Public Sub SomeMethod4 (ByRef a As String, t As T, Optional b As Object = Nothing)", sig);
133+
}
134+
127135
#region Helper Methods
128136
string RealTypeName(string name)
129137
{

0 commit comments

Comments
 (0)