e ファイルでは、次のように言うことは完全に合法です。
print 5;
しかし同時に、次のことは機能しません。
type some_type_e : [ VAL1, VAL2 ];
print VAL2; // issues a compile error
パーサーは、VAL2 が変数名であると想定し、定数として解釈しません。
同時に、これは許可されています:
var some_int : int = 10;
if some_int != 5 {
print "Some int not 5"
};
var some_enum : some_type_e = VAL1;
if some_enum != VAL2 {
print "Some enum not VAL2";
};
この場合、VAL2 は定数として解釈されます。
print の (簡略化された) 構文はprint <exp>
. 列挙型リテラルは式ではありませんか?