JetBrains / JetBrains/Refasmer

Fixed size buffers cause an exception if they are not omitted

Open
#44 1 comment 0 reactions 1 assignee Claimed by @ForNeVeR View on GitHub
bug
Dominant language
C#
Stars
94
Forks
14
PR merge metrics
No merged PRs in 30d

Description

Given this code:

```
unsafe struct S
{
fixed int F[5];
}
```

Running with this cli: `refasmer test.dll --omit-non-api-members=false`

It gives this error:

```
JetBrains.Refasmer.MetadataImporter+UnknownTypeInSignature: Unknown type in signature: {TypeDef[3]: ::e__FixedBuffer}
at JetBrains.Refasmer.MetadataImporter.ImportingVisitor.VisitTypeHandle(EntityHandle srcHandle) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/SignatureImport.cs:line 41
at JetBrains.Refasmer.MetadataImporter.AcceptTypeHandleSignature[T](BlobReader& blobReader, ISignatureVisitor`1 visitor) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/SignatureImport.cs:line 246
at JetBrains.Refasmer.MetadataImporter.AcceptTypeSignature[T](BlobReader& blobReader, ISignatureVisitor`1 visitor) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/SignatureImport.cs:line 208
at JetBrains.Refasmer.MetadataImporter.AcceptFieldSignature[T](BlobReader& blobReader, ISignatureVisitor`1 visitor) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/SignatureImport.cs:line 132
at JetBrains.Refasmer.MetadataImporter.AcceptSignatureWithHeader[T](BlobHandle srcHandle, ISignatureVisitor`1 visitor) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/SignatureImport.cs:line 89
at JetBrains.Refasmer.MetadataImporter.ImportTypeDefinitionSkeleton(TypeDefinitionHandle srcHandle, Boolean omitMembers) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/ImportLogic.cs:line 40
at JetBrains.Refasmer.MetadataImporter.Import() in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/ImportLogic.cs:line 481
at JetBrains.Refasmer.MetadataImporter.MakeRefasm(MetadataReader metaReader, PEReader peReader, LoggerBase logger, IImportFilter filter, Nullable`1 omitNonApiMembers, Boolean makeMock, Boolean omitReferenceAssemblyAttr) in /mnt/agent/work/810daf81501891b9/src/Refasmer/Importer/MetadataImporter.cs:line 95
at JetBrains.Refasmer.Program.MakeRefasm(ValueTuple`2 input) in /mnt/agent/work/810daf81501891b9/src/RefasmerExe/Program.cs:line 287
at JetBrains.Refasmer.Program.Main(String[] args) in /mnt/agent/work/810daf81501891b9/src/RefasmerExe/Program.cs:line 203
ABORTED
```

I don't see how to get the version number from refasmer to tell you the release I am using, but I just installed it today using `dotnet tool install -g JetBrains.Refasmer.CliTool`. I did pull source and it repro'd as well with commit `7099bb9777`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.