-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
TypeId and Polymorphization #75325
Copy link
Copy link
Closed as not planned
Labels
-ZpolymorphizeUnstable option: Polymorphization.Unstable option: Polymorphization.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
-ZpolymorphizeUnstable option: Polymorphization.Unstable option: Polymorphization.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
When polymorphization is enabled (
-Zpolymorphization=on), then this can currently be observed byTypeId. For example, the following code when built with a polymorphization-enabled compiler will fail the asserts (and succeeds normally; playground):This issue was discovered while investigating an earlier regression. After #74538 landed, the example shown below, where a polymorphized closure is indirectly passed to
TypeId, would result in an ICE (discussion from that investigation):In #74717, the check introduced in #74538 was modified so that this case (and another unrelated case) would no longer ICE for polymorphized functions (discussion regarding that PR). There have been more recent discussion regarding this in a dedicated Zulip topic.
Unresolved questions:
TypeIdseems very challenging.