057: tysigterm.hs で renExp: ExpWithTySig 未対応エラー

↑up

概要

明示型付きの項に対応していないので、次のようなプログラム (tysigtem.hs) でエラーする。

main = print (512 :: Int)

現象:

./tcheck testcases/tysigterm.hs 
# 1. test-compile
source file: testcases/tysigterm.hs
dst dir: /tysigterm
doCompile ... done.
implicitPrelude ... done.
doCompile ... bunnyc: Non-exhaustive patterns in renExp: ExpWithTySig (LitExp (LitInteger 512 (1,15))) (Nothing,Tycon (Name {origName = "Int", namePos = (1,22), isConName = True}))
CallStack (from HasCallStack):
  error, called at src/Rename.hs:668:12 in main:Rename

foo :: tysig は、Rename (型推論の前) に、 次のような let 式に変換してやればよいと思われる。

let 
  x :: tysig
  x = foo
in x

調査ログ

2020-05-04 (Mon)

上記方針通りに実装、クローズ。

tysigterm.hs は sample172 とした。