Module erg_common::ty
source · [−]Expand description
defines Type
(type kind).
Type(コンパイラ等で使われる「型」を表現する)を定義する
Modules
Structs
e.g.
e.g.
e.g. (x: Int, ?base: Int) -> Int => SubrTy{ kind: Func, non_default_params: [x: Int], default_params: [base: Int] return_t: Int }
Enums
型引数
データのみ、その評価結果は別に持つ
Info: 連携型パラメータがあるので、比較にはrec_eq
を使うこと
NOTE: 連携型変数があるので、比較にはref_eq
を使うこと
Commonが付く型は多相だが中の型をなんでも受け入れるバージョン
TODO: MonoArray Int, 3 == PolyArray Int, Int, Int
Mut型を作ろうとすると、name() -> &strがうまくいかないので
組み込みMut型は全て書き下す
バイトコード命令で、in-place型付けをするオブジェクト MaybeBigがついている場合、固定長でない可能性あり(実行時検査が必要)
バイトコード命令で、in-place型付けをするオブジェクトペア とりあえずは必要性の高いペアから登録する 全ての式の型が確認されているので、戻り値の型は不要