diff -r 3ac2a36a7a0c -r cf82769eb136 src/Parser.cpp --- a/src/Parser.cpp Sun Aug 05 14:19:19 2012 -0700 +++ b/src/Parser.cpp Sun Aug 05 15:38:52 2012 -0700 @@ -1226,16 +1226,21 @@ } static inline bool -DeclareIntrinsicType(Zone *zone, Scope *scope, const char *name, PrimitiveType type) +DeclareIntrinsicType(Zone *zone, Scope *scope, const char *name, Handle type) { Local tag(zone, zone->makeSymbol(name)); if (!tag) return false; + return !!scope->declareType(tag, type); +} + +static inline bool +DeclareIntrinsicType(Zone *zone, Scope *scope, const char *name, PrimitiveType type) +{ Local primitive(zone, zone->types()->getPrimitive(type)); assert(primitive); - - return !!scope->declareType(tag, primitive); + return DeclareIntrinsicType(zone, scope, name, primitive); } bool @@ -1249,6 +1254,11 @@ return false; if (!DeclareIntrinsicType(zone_, scope_, "String", PrimitiveType_Char)) return false; + + Local unchecked(zone_, zone_->types()->getUnchecked()); + if (!DeclareIntrinsicType(zone_, scope_, "unchecked", unchecked)) + return false; + return true; }