diff --git a/rust/ruby-prism/src/lib.rs b/rust/ruby-prism/src/lib.rs index 10362f8efa..6106009441 100644 --- a/rust/ruby-prism/src/lib.rs +++ b/rust/ruby-prism/src/lib.rs @@ -1147,6 +1147,20 @@ end assert!(result.errors().next().is_none()); } + #[test] + fn parse_with_options_default_line_test() { + use super::{parse_with_options, Options}; + + let source = b"foo\nbar"; + let options = Options::default().filepath("test.rb").build(); + let result = parse_with_options(source, &options); + + let node = result.node(); + let statements: Vec<_> = node.as_program_node().unwrap().statements().body().iter().collect(); + assert_eq!(statements[0].location().start_line(), 1); + assert_eq!(statements[1].location().start_line(), 2); + } + #[test] fn parse_with_options_scopes_test() { use super::{parse_with_options, Options, Scope}; diff --git a/src/options.c b/src/options.c index 66b21439e3..c55d8e97b5 100644 --- a/src/options.c +++ b/src/options.c @@ -17,6 +17,8 @@ pm_options_t * pm_options_new(void) { pm_options_t *options = xcalloc(1, sizeof(pm_options_t)); if (options == NULL) abort(); + + options->line = 1; return options; }