ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:119401] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message
@ 2024-10-02 11:51 nobu (Nobuyoshi Nakada) via ruby-core
  2024-10-02 11:53 ` [ruby-core:119402] " nobu (Nobuyoshi Nakada) via ruby-core
  2024-10-02 16:13 ` [ruby-core:119407] " kddnewton (Kevin Newton) via ruby-core
  0 siblings, 2 replies; 3+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-10-02 11:51 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20776 has been reported by nobu (Nobuyoshi Nakada).

----------------------------------------
Bug #20776: [PRISM] Pattern matching syntax error message
https://bugs.ruby-lang.org/issues/20776

* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Syntax error is fine, but is really expecting end-of-input there?

```
$ ruby -v -e '1 => $g'
ruby 3.4.0dev (2024-10-01T14:59:58Z master 169a5ee99e) +PRISM [arm64-darwin23]
-e:1: warning: possibly useless use of a variable in void context
-e: -e:1: syntax errors found (SyntaxError)
> 1 | 1 => $g
    |      ^~ unexpected global variable, expecting end-of-input
    |      ^~ expected a pattern expression after `=>`
  2 | 
```

And the line 2 is **not** in the input.



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-core:119402] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message
  2024-10-02 11:51 [ruby-core:119401] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-10-02 11:53 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-10-02 16:13 ` [ruby-core:119407] " kddnewton (Kevin Newton) via ruby-core
  1 sibling, 0 replies; 3+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-10-02 11:53 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20776 has been updated by nobu (Nobuyoshi Nakada).

Assignee set to prism
Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: UNKNOWN

The same code segfaulted in 3.3.
Probably some backports are needed.

----------------------------------------
Bug #20776: [PRISM] Pattern matching syntax error message
https://bugs.ruby-lang.org/issues/20776#change-110017

* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Assignee: prism
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: UNKNOWN
----------------------------------------
Syntax error is fine, but is really expecting end-of-input there?

```
$ ruby -v -e '1 => $g'
ruby 3.4.0dev (2024-10-01T14:59:58Z master 169a5ee99e) +PRISM [arm64-darwin23]
-e:1: warning: possibly useless use of a variable in void context
-e: -e:1: syntax errors found (SyntaxError)
> 1 | 1 => $g
    |      ^~ unexpected global variable, expecting end-of-input
    |      ^~ expected a pattern expression after `=>`
  2 | 
```

And the line 2 is **not** in the input.



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-core:119407] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message
  2024-10-02 11:51 [ruby-core:119401] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message nobu (Nobuyoshi Nakada) via ruby-core
  2024-10-02 11:53 ` [ruby-core:119402] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-10-02 16:13 ` kddnewton (Kevin Newton) via ruby-core
  1 sibling, 0 replies; 3+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-10-02 16:13 UTC (permalink / raw)
  To: ruby-core; +Cc: kddnewton (Kevin Newton)

Issue #20776 has been updated by kddnewton (Kevin Newton).


What's happening with the error message is that it's seeing the `$g` and determining that it's not a valid pattern, so it assumes the pattern is missing. Then it's determining that there is no statement delimiter (newline or semicolon) between the statements, so it's saying it expected and end-of-input. Then it's finding the `$g` at the beginning of the next expression, so it's warning that it's possibly useless. Effectively it's parsing it like:

```ruby
1 => <missing>
$g
```

I'm happy to change the error message to whatever would make that more clear.

The second newline is in there because it looked weird having errors hang off the end without another line indicating where the input ended, but I can remove that.

----------------------------------------
Bug #20776: [PRISM] Pattern matching syntax error message
https://bugs.ruby-lang.org/issues/20776#change-110022

* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Assignee: prism
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: UNKNOWN
----------------------------------------
Syntax error is fine, but is really expecting end-of-input there?

```
$ ruby -v -e '1 => $g'
ruby 3.4.0dev (2024-10-01T14:59:58Z master 169a5ee99e) +PRISM [arm64-darwin23]
-e:1: warning: possibly useless use of a variable in void context
-e: -e:1: syntax errors found (SyntaxError)
> 1 | 1 => $g
    |      ^~ unexpected global variable, expecting end-of-input
    |      ^~ expected a pattern expression after `=>`
  2 | 
```

And the line 2 is **not** in the input.



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-10-02 16:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-02 11:51 [ruby-core:119401] [Ruby master Bug#20776] [PRISM] Pattern matching syntax error message nobu (Nobuyoshi Nakada) via ruby-core
2024-10-02 11:53 ` [ruby-core:119402] " nobu (Nobuyoshi Nakada) via ruby-core
2024-10-02 16:13 ` [ruby-core:119407] " kddnewton (Kevin Newton) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).