diff --git a/ast.c b/ast.c index 585e495d39..ec9a98b3e1 100644 --- a/ast.c +++ b/ast.c @@ -614,8 +614,7 @@ Init_ast(void) */ rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject); - rb_define_alloc_func(rb_cNode, rb_ast_node_alloc); - rb_undef_method(CLASS_OF(rb_cNode), "new"); + rb_undef_alloc_func(rb_cNode); rb_define_singleton_method(rb_mAST, "parse", rb_ast_s_parse, 1); rb_define_singleton_method(rb_mAST, "parse_file", rb_ast_s_parse_file, 1); rb_define_method(rb_cNode, "type", rb_ast_node_type, 0); diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index f59b54c17a..27c6753a7e 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -129,6 +129,10 @@ class TestAst < Test::Unit::TestCase end end + def test_allocate + assert_raise(TypeError) {RubyVM::AST::Node.allocate} + end + def test_column_with_long_heredoc_identifier term = "A"*257 ast = RubyVM::AST.parse("<<-#{term}\n""ddddddd\n#{term}\n")