summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common.mk2
-rw-r--r--ruby_parser.c7
2 files changed, 7 insertions, 2 deletions
diff --git a/common.mk b/common.mk
index 5a929fc937..c4b6dec153 100644
--- a/common.mk
+++ b/common.mk
@@ -15876,6 +15876,7 @@ ruby_parser.$(OBJEXT): $(top_srcdir)/internal/bignum.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/bits.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/compilers.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/complex.h
+ruby_parser.$(OBJEXT): $(top_srcdir)/internal/error.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/fixnum.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/imemo.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/numeric.h
@@ -15883,6 +15884,7 @@ ruby_parser.$(OBJEXT): $(top_srcdir)/internal/rational.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/ruby_parser.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/serial.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
+ruby_parser.$(OBJEXT): $(top_srcdir)/internal/string.h
ruby_parser.$(OBJEXT): $(top_srcdir)/internal/vm.h
ruby_parser.$(OBJEXT): {$(VPATH)}assert.h
ruby_parser.$(OBJEXT): {$(VPATH)}backward/2/assume.h
diff --git a/ruby_parser.c b/ruby_parser.c
index 31008e2f75..286756840c 100644
--- a/ruby_parser.c
+++ b/ruby_parser.c
@@ -3,6 +3,7 @@
#include "internal/ruby_parser.h"
#include "rubyparser.h"
+#include "internal/error.h"
static VALUE
compile_negative_numeric(VALUE val)
@@ -16,6 +17,7 @@ compile_negative_numeric(VALUE val)
return DBL2NUM(-RFLOAT_VALUE(val));
}
#endif
+ goto unknown;
}
switch (BUILTIN_TYPE(val)) {
case T_BIGNUM:
@@ -32,8 +34,10 @@ compile_negative_numeric(VALUE val)
case T_FLOAT:
val = DBL2NUM(-RFLOAT_VALUE(val));
break;
+ unknown:
default:
- val = LONG2FIX(-FIX2LONG(val));
+ rb_bug("unknown literal type (%s) passed to compile_negative_numeric",
+ rb_builtin_class_name(val));
break;
}
return val;
@@ -145,7 +149,6 @@ rb_node_imaginary_literal_val(const NODE *n)
#include "internal/compile.h"
#include "internal/complex.h"
#include "internal/encoding.h"
-#include "internal/error.h"
#include "internal/gc.h"
#include "internal/hash.h"
#include "internal/io.h"