diff -r bbb498ccb4ac -r 26e3035cdffc src/compiler/HIR.h --- a/src/compiler/HIR.h Sat Dec 22 23:18:57 2012 -0800 +++ b/src/compiler/HIR.h Mon Dec 24 02:49:20 2012 -0800 @@ -29,6 +29,8 @@ _(Call) \ _(Integer) \ _(Float) \ + _(String) \ + _(Array) \ _(Store) \ _(ToRef) \ /* Special LValue types */ \ @@ -48,6 +50,7 @@ class HIRVisitor; class AstNode; class HLValue; +class Array; class HIR : public PoolObject { @@ -142,6 +145,42 @@ int value_; }; +class HString : public HIR +{ + public: + HString(AstNode *node, Type *type, String *string) + : HIR(node, type), + string_(string) + { + } + + DEFINE_HIR(String); + Handle string() const { + return string_; + } + + private: + ScopedRoot string_; +}; + +class HArray : public HIR +{ + public: + HArray(AstNode *node, Type *type, Array *array) + : HIR(node, type), + array_(array) + { + } + + DEFINE_HIR(Array); + Handle array() const { + return array_; + } + + private: + ScopedRoot array_; +}; + class HConvert : public HIR { public: