Commit 0339317b authored by Masaki Muranaka's avatar Masaki Muranaka

Supress using switches with fallthru or a empty default label.

parent 49cac5f9
...@@ -805,12 +805,8 @@ ret_args(parser_state *p, node *n) ...@@ -805,12 +805,8 @@ ret_args(parser_state *p, node *n)
static void static void
assignable(parser_state *p, node *lhs) assignable(parser_state *p, node *lhs)
{ {
switch ((int)(intptr_t)lhs->car) { if ((int)(intptr_t)lhs->car == NODE_LVAR) {
case NODE_LVAR:
local_add(p, (mrb_sym)lhs->cdr); local_add(p, (mrb_sym)lhs->cdr);
break;
default:
break;
} }
} }
...@@ -819,17 +815,14 @@ var_reference(parser_state *p, node *lhs) ...@@ -819,17 +815,14 @@ var_reference(parser_state *p, node *lhs)
{ {
node *n; node *n;
switch ((int)(intptr_t)lhs->car) { if ((int)(intptr_t)lhs->car == NODE_LVAR) {
case NODE_LVAR:
if (!local_var_p(p, (mrb_sym)lhs->cdr)) { if (!local_var_p(p, (mrb_sym)lhs->cdr)) {
n = new_fcall(p, (mrb_sym)lhs->cdr, 0); n = new_fcall(p, (mrb_sym)lhs->cdr, 0);
cons_free(lhs); cons_free(lhs);
return n; return n;
} }
break;
default:
break;
} }
return lhs; return lhs;
} }
...@@ -3038,15 +3031,16 @@ yywarning_s(parser_state *p, const char *fmt, const char *s) ...@@ -3038,15 +3031,16 @@ yywarning_s(parser_state *p, const char *fmt, const char *s)
static void static void
backref_error(parser_state *p, node *n) backref_error(parser_state *p, node *n)
{ {
switch ((int)(intptr_t)n->car) { int c;
case NODE_NTH_REF:
c = (int)(intptr_t)n->car;
if (c == NODE_NTH_REF) {
yyerror_i(p, "can't set variable $%d", (int)(intptr_t)n->cdr); yyerror_i(p, "can't set variable $%d", (int)(intptr_t)n->cdr);
break; } else if (c == NODE_BACK_REF) {
case NODE_BACK_REF:
yyerror_i(p, "can't set variable $%c", (int)(intptr_t)n->cdr); yyerror_i(p, "can't set variable $%c", (int)(intptr_t)n->cdr);
break; } else {
default: mrb_bug("Internal error in backref_error() : n=>car == %d", c);
break;
} }
} }
...@@ -3589,11 +3583,10 @@ parser_yylex(parser_state *p) ...@@ -3589,11 +3583,10 @@ parser_yylex(parser_state *p)
c = '*'; c = '*';
} }
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
return c; return c;
...@@ -3624,11 +3617,10 @@ parser_yylex(parser_state *p) ...@@ -3624,11 +3617,10 @@ parser_yylex(parser_state *p)
goto retry; goto retry;
} }
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
if ((c = nextc(p)) == '=') { if ((c = nextc(p)) == '=') {
if ((c = nextc(p)) == '=') { if ((c = nextc(p)) == '=') {
...@@ -3660,13 +3652,13 @@ parser_yylex(parser_state *p) ...@@ -3660,13 +3652,13 @@ parser_yylex(parser_state *p)
if (token) return token; if (token) return token;
} }
#endif #endif
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
case EXPR_CLASS: p->lstate = EXPR_BEG;
if (p->lstate == EXPR_CLASS) {
p->cmd_start = TRUE; p->cmd_start = TRUE;
default: }
p->lstate = EXPR_BEG; break;
} }
if (c == '=') { if (c == '=') {
if ((c = nextc(p)) == '>') { if ((c = nextc(p)) == '>') {
...@@ -3688,11 +3680,10 @@ parser_yylex(parser_state *p) ...@@ -3688,11 +3680,10 @@ parser_yylex(parser_state *p)
return '<'; return '<';
case '>': case '>':
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
if ((c = nextc(p)) == '=') { if ((c = nextc(p)) == '=') {
return tGEQ; return tGEQ;
...@@ -3820,10 +3811,9 @@ parser_yylex(parser_state *p) ...@@ -3820,10 +3811,9 @@ parser_yylex(parser_state *p)
else { else {
c = '&'; c = '&';
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default:
p->lstate = EXPR_BEG; p->lstate = EXPR_BEG;
} }
return c; return c;
...@@ -4206,11 +4196,10 @@ parser_yylex(parser_state *p) ...@@ -4206,11 +4196,10 @@ parser_yylex(parser_state *p)
#endif #endif
return tREGEXP_BEG; return tREGEXP_BEG;
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
return '/'; return '/';
...@@ -4220,11 +4209,10 @@ parser_yylex(parser_state *p) ...@@ -4220,11 +4209,10 @@ parser_yylex(parser_state *p)
p->lstate = EXPR_BEG; p->lstate = EXPR_BEG;
return tOP_ASGN; return tOP_ASGN;
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
pushback(p, c); pushback(p, c);
return '^'; return '^';
...@@ -4409,11 +4397,10 @@ parser_yylex(parser_state *p) ...@@ -4409,11 +4397,10 @@ parser_yylex(parser_state *p)
if (IS_SPCARG(c)) { if (IS_SPCARG(c)) {
goto quotation; goto quotation;
} }
switch (p->lstate) { if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
case EXPR_FNAME: case EXPR_DOT: p->lstate = EXPR_ARG;
p->lstate = EXPR_ARG; break; } else {
default: p->lstate = EXPR_BEG;
p->lstate = EXPR_BEG; break;
} }
pushback(p, c); pushback(p, c);
return '%'; return '%';
......
...@@ -20,19 +20,14 @@ static void ...@@ -20,19 +20,14 @@ static void
range_check(mrb_state *mrb, mrb_value a, mrb_value b) range_check(mrb_state *mrb, mrb_value a, mrb_value b)
{ {
mrb_value ans; mrb_value ans;
int ta;
int tb;
switch (mrb_type(a)) { ta = mrb_type(a);
case MRB_TT_FIXNUM: tb = mrb_type(b);
case MRB_TT_FLOAT: if ((ta == MRB_TT_FIXNUM || ta == MRB_TT_FLOAT) &&
switch (mrb_type(b)) { (tb == MRB_TT_FIXNUM || tb == MRB_TT_FLOAT)) {
case MRB_TT_FIXNUM:
case MRB_TT_FLOAT:
return; return;
default:
break;
}
default:
break;
} }
mrb_p(mrb, a); mrb_p(mrb, a);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment