diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-06-19 17:35:06 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-06-19 17:35:06 -0700 |
commit | c56cdd63089f9487ba3380ffc41c6eb5fc3cb461 (patch) | |
tree | dac77e68cd2a438f5c0d3630e5d4197c0ff4319c /042new.cc | |
parent | f91179bdfc4b8049e9b4609396e1d7a01e302304 (diff) | |
download | mu-c56cdd63089f9487ba3380ffc41c6eb5fc3cb461.tar.gz |
1601
Diffstat (limited to '042new.cc')
-rw-r--r-- | 042new.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/042new.cc b/042new.cc index 7b4054ec..324fad16 100644 --- a/042new.cc +++ b/042new.cc @@ -35,7 +35,8 @@ if (inst.operation == Recipe_number["new"]) { // End NEW Transform Special-cases // first arg must be of type 'type' assert(SIZE(inst.ingredients) >= 1); - assert(is_literal(inst.ingredients.at(0))); + if (!is_literal(inst.ingredients.at(0))) + raise << "expected literal, got " << inst.ingredients.at(0).to_string() << '\n' << die(); if (inst.ingredients.at(0).properties.at(0).second.at(0) != "type") raise << "tried to allocate non-type " << inst.ingredients.at(0).to_string() << " in recipe " << Recipe[r].name << '\n' << die(); if (Type_number.find(inst.ingredients.at(0).name) == Type_number.end()) @@ -190,7 +191,10 @@ recipe main [ +mem: storing 171 in location 3 :(before "End NEW Transform Special-cases") - if (inst.ingredients.at(0).properties.at(0).second.at(0) == "literal-string") { + if (!inst.ingredients.empty() + && !inst.ingredients.at(0).properties.empty() + && !inst.ingredients.at(0).properties.at(0).second.empty() + && inst.ingredients.at(0).properties.at(0).second.at(0) == "literal-string") { // skip transform inst.ingredients.at(0).initialized = true; goto end_new_transform; |