#10045: type holes related ghc panic -------------------------------------+------------------------------------- Reporter: pacak | Owner: thomasw Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: Phab:D646 -------------------------------------+------------------------------------- Comment (by Austin Seipp <austin@…>): In [changeset:"e9d72cefeda243d5962d0615fe7ad22ff615d134/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="e9d72cefeda243d5962d0615fe7ad22ff615d134" Fix #10045 Summary: SPJ's solution is to only bring the `TcId` (which includes the type) of a binder into scope when it had a non-partial type signature. Take care of this by only storing the `TcId` in `TcSigInfo` of non-partial type signatures, hence the change to `sig_poly_id :: Maybe TcId`. Only in case of a `Just` will we bring the `TcId` in scope. We still need to know the name of the binder, even when it has a partial type signature, so add a `sig_name :: Name` field. The field `sig_partial :: Bool` is no longer necessary, so reimplement `isPartialSig` in terms of `sig_poly_id`. Note that the new test case fails, but not because of a panic, but because the `Num a` constraint is missing. Adding an extra-constraints wildcard to `copy`'s signature would fix it. Test Plan: validate Reviewers: simonpj, austin Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D646 GHC Trac Issues: #10045 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10045#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler