Ticket #75 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

Unresolved TApp during inference

Reported by: benl Owned by:
Priority: blocker Milestone: 0.1.3
Component: Source Type Inferencer Version: 0.1.2
Keywords: Cc:

Description (last modified by benl) (diff)

Added by Jared

example list = do
    dummy = map id list
    list.head

Gives

ddc: PANIC in Type.Squid.CrushProj
        crushProjClassT: no match for (* -> *)20 *24

The example succeeds when the projection is removed in favor of its corresponding function. The example also fails for variants using let and where and when dummy is removed. If dummy is replaced by an underscore, the failure message is the same for a do block, but let and where clauses trigger a different compiler error.

Type.Crush.Proj.crushProjClass3 is expecting a fully formed TData - but the result type of map is a TApp which it gets from the sig in the Functor class definition.

Test is T75-UnresolvedTApp

Change History

Changed 6 years ago by benl

  • description modified (diff)

Changed 5 years ago by benl

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

Fixed by the inferencer refactoring.

Note: See TracTickets for help on using tickets.