Ticket #1445 (closed bug: fixed)

Opened 6 years ago

Last modified 5 years ago

implicit parameter not hoisted

Reported by: Ashley Yakeley <ashley@…> Owned by: simonpj
Priority: normal Milestone:
Component: Compiler Version: 6.6
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty: Unknown
Test Case: tc230 Blocked By:
Blocking: Related Tickets:

Description

Try compiling this:

{-# OPTIONS -fglasgow-exts #-}
module Bug where
	f :: () -> (?p :: ()) => () -> ()
	f _ _ = ();

	g :: (?p :: ()) => ()
	g = f () ()

Results:

Bug.hs:7:10:
    Couldn't match expected type `{?p::()}' against inferred type `()'
    In the second argument of `f', namely `()'
    In the expression: f () ()
    In the definition of `g': g = f () ()

Expected: to compile.

Change History

Changed 6 years ago by igloo

  • owner set to simonpj

This looks like another one for you, Simon...

Changed 6 years ago by simonpj

  • status changed from new to closed
  • testcase set to tc230
  • resolution set to fixed

Good report, thank you. A slip in TcType.tcSplitFunTy_maybe, now fixed.

Simon

Changed 5 years ago by simonmar

  • architecture changed from Unknown to Unknown/Multiple

Changed 5 years ago by simonmar

  • os changed from Unknown to Unknown/Multiple
Note: See TracTickets for help on using tickets.