Skip to content

Fixed size buffers cause an exception if they are not omitted #44

@scottbilas

Description

@scottbilas

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]: ::<F>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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions