Project

General

Profile

Actions

Bug #21027

closed

`not()` receiver should be `nil`

Added by kddnewton (Kevin Newton) 4 days ago. Updated 4 days ago.

Status:
Closed
Assignee:
Target version:
-
[ruby-core:120613]

Description

not has a 0-argument mode, and the behavior differs from that of parse.y:

% RBENV_VERSION=3.4.0 ruby --parser=parse.y -e 'p not()'
true
% RBENV_VERSION=3.4.0 ruby --parser=prism -e 'p not()'
false

This is because Prism interprets not() as self.! where parse.y interprets it as nil.!.

Actions #1

Updated by kddnewton (Kevin Newton) 4 days ago

  • Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN to 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: REQUIRED
Actions #2

Updated by kddnewton (Kevin Newton) 4 days ago

  • Status changed from Open to Closed

Applied in changeset git|117d6e145a0270ab8fc9134403519ef13b9ebb24.


[ruby/prism] Fix not receiver

not foo should be !foo
not() should be !nil

Fixes [Bug #21027]

https://github.com/ruby/prism/commit/871ed4b462

Actions

Also available in: Atom PDF

Like0
Like0Like0