mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 17:43:59 +02:00
[ruby/prism] Set `#line" directives to respect the path in ruby/ruby repo
ruby/ruby measures test coverage of C code, but the `#line` directive
generated by prism points to a file that does not exist, so coverage is
not taken properly.
This changeset specifies the location of the source files as a relative
path in terms of ruby/ruby repo.
1a2626be27
This commit is contained in:
parent
0a9f1ecc37
commit
c3b5b98e15
3 changed files with 19 additions and 19 deletions
|
@ -1,4 +1,4 @@
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
#include "prism/extension.h"
|
#include "prism/extension.h"
|
||||||
|
|
||||||
extern VALUE rb_cPrism;
|
extern VALUE rb_cPrism;
|
||||||
|
@ -142,7 +142,7 @@ pm_ast_new(const pm_parser_t *parser, const pm_node_t *node, rb_encoding *encodi
|
||||||
switch (PM_NODE_TYPE(node)) {
|
switch (PM_NODE_TYPE(node)) {
|
||||||
<%- nodes.each do |node| -%>
|
<%- nodes.each do |node| -%>
|
||||||
<%- if node.fields.any? { |field| [Prism::Template::NodeField, Prism::Template::OptionalNodeField, Prism::Template::NodeListField].include?(field.class) } -%>
|
<%- if node.fields.any? { |field| [Prism::Template::NodeField, Prism::Template::OptionalNodeField, Prism::Template::NodeListField].include?(field.class) } -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
case <%= node.type %>: {
|
case <%= node.type %>: {
|
||||||
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
||||||
<%- node.fields.each do |field| -%>
|
<%- node.fields.each do |field| -%>
|
||||||
|
@ -162,13 +162,13 @@ pm_ast_new(const pm_parser_t *parser, const pm_node_t *node, rb_encoding *encodi
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
} else {
|
} else {
|
||||||
const pm_node_t *node = pm_node_stack_pop(&node_stack);
|
const pm_node_t *node = pm_node_stack_pop(&node_stack);
|
||||||
|
|
||||||
switch (PM_NODE_TYPE(node)) {
|
switch (PM_NODE_TYPE(node)) {
|
||||||
<%- nodes.each do |node| -%>
|
<%- nodes.each do |node| -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
case <%= node.type %>: {
|
case <%= node.type %>: {
|
||||||
<%- if node.fields.any? { |field| ![Prism::Template::NodeField, Prism::Template::OptionalNodeField, Prism::Template::FlagsField].include?(field.class) } -%>
|
<%- if node.fields.any? { |field| ![Prism::Template::NodeField, Prism::Template::OptionalNodeField, Prism::Template::FlagsField].include?(field.class) } -%>
|
||||||
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
||||||
|
@ -182,50 +182,50 @@ pm_ast_new(const pm_parser_t *parser, const pm_node_t *node, rb_encoding *encodi
|
||||||
// <%= field.name %>
|
// <%= field.name %>
|
||||||
<%- case field -%>
|
<%- case field -%>
|
||||||
<%- when Prism::Template::NodeField, Prism::Template::OptionalNodeField -%>
|
<%- when Prism::Template::NodeField, Prism::Template::OptionalNodeField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = rb_ary_pop(value_stack);
|
argv[<%= index %>] = rb_ary_pop(value_stack);
|
||||||
<%- when Prism::Template::NodeListField -%>
|
<%- when Prism::Template::NodeListField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = rb_ary_new_capa(cast-><%= field.name %>.size);
|
argv[<%= index %>] = rb_ary_new_capa(cast-><%= field.name %>.size);
|
||||||
for (size_t index = 0; index < cast-><%= field.name %>.size; index++) {
|
for (size_t index = 0; index < cast-><%= field.name %>.size; index++) {
|
||||||
rb_ary_push(argv[<%= index %>], rb_ary_pop(value_stack));
|
rb_ary_push(argv[<%= index %>], rb_ary_pop(value_stack));
|
||||||
}
|
}
|
||||||
<%- when Prism::Template::StringField -%>
|
<%- when Prism::Template::StringField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = pm_string_new(&cast-><%= field.name %>, encoding);
|
argv[<%= index %>] = pm_string_new(&cast-><%= field.name %>, encoding);
|
||||||
<%- when Prism::Template::ConstantField -%>
|
<%- when Prism::Template::ConstantField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
assert(cast-><%= field.name %> != 0);
|
assert(cast-><%= field.name %> != 0);
|
||||||
argv[<%= index %>] = RARRAY_AREF(constants, cast-><%= field.name %> - 1);
|
argv[<%= index %>] = RARRAY_AREF(constants, cast-><%= field.name %> - 1);
|
||||||
<%- when Prism::Template::OptionalConstantField -%>
|
<%- when Prism::Template::OptionalConstantField -%>
|
||||||
argv[<%= index %>] = cast-><%= field.name %> == 0 ? Qnil : RARRAY_AREF(constants, cast-><%= field.name %> - 1);
|
argv[<%= index %>] = cast-><%= field.name %> == 0 ? Qnil : RARRAY_AREF(constants, cast-><%= field.name %> - 1);
|
||||||
<%- when Prism::Template::ConstantListField -%>
|
<%- when Prism::Template::ConstantListField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = rb_ary_new_capa(cast-><%= field.name %>.size);
|
argv[<%= index %>] = rb_ary_new_capa(cast-><%= field.name %>.size);
|
||||||
for (size_t index = 0; index < cast-><%= field.name %>.size; index++) {
|
for (size_t index = 0; index < cast-><%= field.name %>.size; index++) {
|
||||||
assert(cast-><%= field.name %>.ids[index] != 0);
|
assert(cast-><%= field.name %>.ids[index] != 0);
|
||||||
rb_ary_push(argv[<%= index %>], RARRAY_AREF(constants, cast-><%= field.name %>.ids[index] - 1));
|
rb_ary_push(argv[<%= index %>], RARRAY_AREF(constants, cast-><%= field.name %>.ids[index] - 1));
|
||||||
}
|
}
|
||||||
<%- when Prism::Template::LocationField -%>
|
<%- when Prism::Template::LocationField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end);
|
argv[<%= index %>] = pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end);
|
||||||
<%- when Prism::Template::OptionalLocationField -%>
|
<%- when Prism::Template::OptionalLocationField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = cast-><%= field.name %>.start == NULL ? Qnil : pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end);
|
argv[<%= index %>] = cast-><%= field.name %>.start == NULL ? Qnil : pm_location_new(parser, cast-><%= field.name %>.start, cast-><%= field.name %>.end);
|
||||||
<%- when Prism::Template::UInt8Field -%>
|
<%- when Prism::Template::UInt8Field -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = UINT2NUM(cast-><%= field.name %>);
|
argv[<%= index %>] = UINT2NUM(cast-><%= field.name %>);
|
||||||
<%- when Prism::Template::UInt32Field -%>
|
<%- when Prism::Template::UInt32Field -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = ULONG2NUM(cast-><%= field.name %>);
|
argv[<%= index %>] = ULONG2NUM(cast-><%= field.name %>);
|
||||||
<%- when Prism::Template::FlagsField -%>
|
<%- when Prism::Template::FlagsField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = ULONG2NUM(node->flags & ~PM_NODE_FLAG_COMMON_MASK);
|
argv[<%= index %>] = ULONG2NUM(node->flags & ~PM_NODE_FLAG_COMMON_MASK);
|
||||||
<%- when Prism::Template::IntegerField -%>
|
<%- when Prism::Template::IntegerField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = pm_integer_new(&cast-><%= field.name %>);
|
argv[<%= index %>] = pm_integer_new(&cast-><%= field.name %>);
|
||||||
<%- when Prism::Template::DoubleField -%>
|
<%- when Prism::Template::DoubleField -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/ext/prism/<%= File.basename(__FILE__) %>"
|
||||||
argv[<%= index %>] = DBL2NUM(cast-><%= field.name %>);
|
argv[<%= index %>] = DBL2NUM(cast-><%= field.name %>);
|
||||||
<%- else -%>
|
<%- else -%>
|
||||||
<%- raise -%>
|
<%- raise -%>
|
||||||
|
|
|
@ -106,7 +106,7 @@ PRISM_EXPORTED_FUNCTION void
|
||||||
pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
|
pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
|
||||||
switch (PM_NODE_TYPE(node)) {
|
switch (PM_NODE_TYPE(node)) {
|
||||||
<%- nodes.each do |node| -%>
|
<%- nodes.each do |node| -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/src/<%= File.basename(__FILE__) %>"
|
||||||
case <%= node.type %>: {
|
case <%= node.type %>: {
|
||||||
<%- if node.fields.any? { |field| ![Prism::Template::LocationField, Prism::Template::OptionalLocationField, Prism::Template::UInt8Field, Prism::Template::UInt32Field, Prism::Template::FlagsField, Prism::Template::ConstantField, Prism::Template::OptionalConstantField, Prism::Template::DoubleField].include?(field.class) } -%>
|
<%- if node.fields.any? { |field| ![Prism::Template::LocationField, Prism::Template::OptionalLocationField, Prism::Template::UInt8Field, Prism::Template::UInt32Field, Prism::Template::FlagsField, Prism::Template::ConstantField, Prism::Template::OptionalConstantField, Prism::Template::DoubleField].include?(field.class) } -%>
|
||||||
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
pm_<%= node.human %>_t *cast = (pm_<%= node.human %>_t *) node;
|
||||||
|
@ -135,7 +135,7 @@ pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
<%- end -%>
|
<%- end -%>
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/src/<%= File.basename(__FILE__) %>"
|
||||||
default:
|
default:
|
||||||
assert(false && "unreachable");
|
assert(false && "unreachable");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -267,7 +267,7 @@ pm_serialize_metadata(pm_parser_t *parser, pm_buffer_t *buffer) {
|
||||||
pm_serialize_diagnostic_list(parser, &parser->warning_list, buffer);
|
pm_serialize_diagnostic_list(parser, &parser->warning_list, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
#line <%= __LINE__ + 1 %> "<%= File.basename(__FILE__) %>"
|
#line <%= __LINE__ + 1 %> "prism/templates/src/<%= File.basename(__FILE__) %>"
|
||||||
/**
|
/**
|
||||||
* Serialize the metadata, nodes, and constant pool.
|
* Serialize the metadata, nodes, and constant pool.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue