Address verification issue in 30747
The `MissingTypeKindBasisTypes` test is copied from `UseSiteErrorTests` and given verification succeeds there it's reasonable to expect that it would succeed here. However there are a few factors here that aren't obvious at a glance. The first is that not all of the compilations in `UseSiteErrorTests` are verifable. The `compilation1` is not verifiable in either suite, it's hard to miss because it's not tested. The reason why is that the corlib reference name is mincorlib, not mscorlib. PEVerify is hard coded to think the name of corlib will always be mscorlib. Hence any attempt to verify against a different name corlib will always fail. Well ... almost always. It fails only when it's used in the IL. For `compilation2` there is no direct reference to corlib, hence mincorlib doesn't appear in the IL and it passes verification. With NRT though we silently emit an attribute in the binary for nullable tracking and this does reference corlib (the attribute derives from `System.Attribute`) and hence verification fails. Adjusted the suite to make this expected. closes #30747
Showing
想要评论请 注册 或 登录