switch対応 その2

型によるcase式に対応できた
参照型変数は「ldloc→isinst→ldnull→cgt.un」でいいんだけど値型変数だとうまくいかない
結局、値型変数は「ldloc→box→isinst→ldnull→cgt.un」にした
boxが出てくるのはどーよって気がしなくもないけど、まぁいっか

f:id:zenu:20171010212115p:plain

しかし、caseとその後ろの式の区切りに「:」を使ったのは失敗だったかなぁ
ほかんところはPascal式の「var n: Int」なのにcase部分だけコロンが使えないせいでC式?の「Int n」っちゅー不思議文法になってしまった

caseと式の区切りの記号は何がいいだろう
イコールはすっげー気持ち悪いしな、Haskellのガードとか
矢印かなー、こんな感じの

switch x
	n: Int    => print("Int")
	s: String => print("String " + s)
	h: Hoge   => print(h.i)