Skip to content

Commit 9e0b661

Browse files
committed
Ensure suffixes are correctly handled for ui32 and ui64
1 parent efd8c1a commit 9e0b661

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitStmt.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,10 +1902,18 @@ private void VisitIntegerLiteral(IntegerLiteral integerLiteral)
19021902
{
19031903
valueString = valueString[0..^3];
19041904
}
1905+
else if (valueString.EndsWith("ui32", StringComparison.OrdinalIgnoreCase))
1906+
{
1907+
valueString = valueString[0..^4] + "U";
1908+
}
19051909
else if (valueString.EndsWith("i32", StringComparison.OrdinalIgnoreCase))
19061910
{
19071911
valueString = valueString[0..^3];
19081912
}
1913+
else if (valueString.EndsWith("ui64", StringComparison.OrdinalIgnoreCase))
1914+
{
1915+
valueString = valueString[0..^4] + "UL";
1916+
}
19091917
else if (valueString.EndsWith("i64", StringComparison.OrdinalIgnoreCase))
19101918
{
19111919
valueString = valueString[0..^3] + "L";

tests/ClangSharp.PInvokeGenerator.UnitTests/CSharpPreviewUnix/StructDeclarationTest.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,7 @@ public ref {expectedManagedType} this[int index]
5050
}}
5151
";
5252

53-
var diagnostics = new[] {
54-
new Diagnostic(DiagnosticLevel.Warning, "Found variable length array: 'MyStruct::x'. Please specify the length using `--with-length <string>`.", $"Line 3, Column {6 + expectedManagedType.Length} in ClangUnsavedFile.h"),
55-
};
56-
return ValidateGeneratedCSharpPreviewUnixBindingsAsync(inputContents, expectedOutputContents, expectedDiagnostics: diagnostics);
53+
return ValidateGeneratedCSharpPreviewUnixBindingsAsync(inputContents, expectedOutputContents);
5754
}
5855

5956
protected override Task BasicTestImpl(string nativeType, string expectedManagedType)

0 commit comments

Comments
 (0)