Skip to content

Don't skip validity checks for built-in classes (#17355)

Ryan Scott requested to merge wip/T17355 into master

Issue #17355 (closed) occurred because the control flow for TcValidity.check_valid_inst_head was structured in such a way that whenever it checked a special, built-in class (like Generic or HasField), it would skip the most important check of all: checkValidTypePats, which rejects nonsense like this:

instance Generic (forall a. a)

This fixes the issue by carving out checkValidTypePats from check_valid_inst_head so that checkValidTypePats is always invoked. check_valid_inst_head has also been renamed to check_special_inst_head to reflect its new purpose of only checking for instances headed by special classes.

Fixes #17355 (closed).

Edited by Ryan Scott

Merge request reports