Skip to content

Commit c1b8035

Browse files
committed
Misc. cleanup
1 parent 1275e0f commit c1b8035

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

ast/desugar/Desugar.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ core::NameRef blockParam2Name(DesugarContext dctx, const BlockParam &blockParam)
5454
int numparamNum(DesugarContext dctx, parser::Node *decl) {
5555
if (auto *lvar = parser::cast_node<parser::LVar>(decl)) {
5656
auto name_str = lvar->name.show(dctx.ctx);
57-
return name_str[1] - 48;
57+
return name_str[1] - '0';
5858
}
5959
return -1;
6060
}

parser/Builder.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ class Builder::Impl {
229229
auto intro = make_unique<LVar>(node->loc, id->name);
230230
auto decls = driver_->alloc.node_list();
231231
decls->emplace_back(toForeign(std::move(intro)));
232-
driver_->numparam_stack.regis(name_str[1] - 48, std::move(decls));
232+
driver_->numparam_stack.regis(name_str[1] - '0', std::move(decls));
233233
}
234234

235235
auto last_char = name_str.back();
@@ -1913,7 +1913,7 @@ class Builder::Impl {
19131913
}
19141914

19151915
bool isNumberedParameterName(std::string_view name) {
1916-
return name.length() == 2 && name[0] == '_' && name[1] >= '1' && name[1] <= '9';
1916+
return name.length() == 2 && name[0] == '_' && isdigit(name[1]);
19171917
}
19181918
};
19191919

parser/parser/include/ruby_parser/driver.hh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,12 +224,12 @@ public:
224224

225225
// Have we encountered an ordinary param before? (top < 0)
226226
bool seen_ordinary_params() {
227-
return stack.empty() ? false : top()->max < 0;
227+
return !stack.empty() && top()->max < 0;
228228
}
229229

230230
// Have we encountered a num param before? (top > 0)
231231
bool seen_numparams() {
232-
return stack.empty() ? false : top()->max > 0;
232+
return !stack.empty() && top()->max > 0;
233233
}
234234

235235
// Register a numparam in the current scope

parser/prism/Translator.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,9 @@ unique_ptr<parser::Node> Translator::translate(pm_node_t *node, bool preserveCon
12311231

12321232
auto paramCount = numberedParamsNode->maximum;
12331233

1234+
ENFORCE(1 <= paramCount,
1235+
"A numbered parameters node should have at least one parameter");
1236+
12341237
NodeVec params;
12351238
params.reserve(paramCount);
12361239

0 commit comments

Comments
 (0)