Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure Array.CreateInstance over reference types works #100626

Merged
merged 1 commit into from
Apr 5, 2024

Conversation

MichalStrehovsky
Copy link
Member

We have warning suppressions in place assuming Array.CreateInstance will succeed if it's over reference types, same as MakeGeneric. There's however no analysis to ensure we have the type loader template for __Canon[]. This adds the analysis.

The reflection\GenericAttribute test is currently failing because of this but we don't see it because it's marked RequiresProcessIsolation and we have a bug that we don't look at those tests at all.

We had this bug for a while, but the test regression is more recent because we're getting better at not generating useless stuff. Template for __Canon[] is probably part of any bigger test because it's common.

cc @dotnet/ilc-contrib

We have warning suppressions in place assuming `Array.CreateInstance` will succeed if it's over reference types, same as `MakeGeneric`. There's however no analysis to ensure we have the type loader template for `__Canon[]`. This adds the analysis.

The `reflection\GenericAttribute` test is currently failing because of this but we don't see it because it's marked RequiresProcessIsolation and we have a bug that we don't look at those tests at all.

We had this bug for a while, but the test regression is more recent because we're getting better at not generating useless stuff. Template for `__Canon[]` is probably part of any bigger test because it's common.
Copy link
Contributor

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

@MichalStrehovsky MichalStrehovsky merged commit beac274 into dotnet:main Apr 5, 2024
116 checks passed
@MichalStrehovsky MichalStrehovsky deleted the arraycreate branch April 5, 2024 05:19
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Apr 15, 2024
Follow up to dotnet#100626. The original fix only worked for unoptimized builds because the list of templates doesn't survive from scanning phase (when we do dataflow) to codegen phase (when we no longer do dataflow).

The test that this was supposed to fix is still failing in dotnet#100331.
MichalStrehovsky added a commit that referenced this pull request Apr 16, 2024
Follow up to #100626. The original fix only worked for unoptimized builds because the list of templates doesn't survive from scanning phase (when we do dataflow) to codegen phase (when we no longer do dataflow).

The test that this was supposed to fix is still failing in #100331.
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
We have warning suppressions in place assuming `Array.CreateInstance` will succeed if it's over reference types, same as `MakeGeneric`. There's however no analysis to ensure we have the type loader template for `__Canon[]`. This adds the analysis.

The `reflection\GenericAttribute` test is currently failing because of this but we don't see it because it's marked RequiresProcessIsolation and we have a bug that we don't look at those tests at all.

We had this bug for a while, but the test regression is more recent because we're getting better at not generating useless stuff. Template for `__Canon[]` is probably part of any bigger test because it's common.
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
Follow up to dotnet#100626. The original fix only worked for unoptimized builds because the list of templates doesn't survive from scanning phase (when we do dataflow) to codegen phase (when we no longer do dataflow).

The test that this was supposed to fix is still failing in dotnet#100331.
@github-actions github-actions bot locked and limited conversation to collaborators May 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants