Project

General

Profile

Actions

Bug #14201

closed

Regression due to over optimization of hash splat

Added by marcandre (Marc-Andre Lafortune) almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
2.5.0-rc1 & trunk
[ruby-core:84340]

Description

The following doesn't print anything nor raise anything in 2.5.0-rc1 or trunk:

$ ruby -e "{**puts('hello')}; 42"

It should be the same as in Ruby 2.0-2.4:

hello
-e:1:in `<main>': no implicit conversion of nil into Hash (TypeError)

Note: If you try to use the hash (e.g. passing as argument, storing in variable), then the correct behavior takes place. Found this bug through DeepCover's test suite.


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #14459: Unexpected compile error in 2.5.0ClosedActions
Actions #1

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r61329.


compile.c: side effect in splat

  • compile.c (compile_array): splat which may have side effects
    should be compiled even if the result will be popped.
    [ruby-core:84340] [Bug #14201]

From: Nobuyoshi Nakada

Actions #2

Updated by wanabe (_ wanabe) almost 5 years ago

  • Related to Bug #14459: Unexpected compile error in 2.5.0 added
Actions

Also available in: Atom PDF

Like0
Like0Like0