dotnet/runtime

Add test coverage for ECMA-335 corner around non-optional Lists

Open

#26,096 建立於 2018年5月7日

在 GitHub 查看
 (4 留言) (0 反應) (0 負責人)C# (5,445 fork)batch import
area-System.Reflection.Metadatahelp wantedtest-enhancement

倉庫指標

Star
 (17,886 star)
PR 合併指標
 (平均合併 12天 11小時) (30 天內合併 661 個 PR)

描述

Use System.Reflection.Metadata to emit the following:

  • A module with exactly 0xFFFF methods
  • The last type in the module has no methods

This will hit a corner case in the ECMA-335 spec where the TypeDef record for the last type should end up with a MethodList value of 0x10000, but per the spec, the MethodList column is only 2 bytes wide (because the method count fits in 2 bytes), making the value fall out of range.

This also affects other similar columns, such as TypeDef.FieldList, and MethodDef.ParamList.

Per the spec, null might be a legal value to put there in that case.

貢獻者指南