From: nobu@... Date: 2020-08-20T09:41:56+00:00 Subject: [ruby-core:99656] [Ruby master Bug#17124] Wrong "ambiguous first argument" warning Issue #17124 has been updated by nobu (Nobuyoshi Nakada). In your example, `/[a-z]` looks very likely a regexp because of `[`, but how about `/a`? Or `match? /(a` ...lines... `)/x`? There are many possibilities. ---------------------------------------- Bug #17124: Wrong "ambiguous first argument" warning https://bugs.ruby-lang.org/issues/17124#change-87139 * Author: marcandre (Marc-Andre Lafortune) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- ```sh $ ruby -v -e "x='a'; x.match? /[a-z]/" ruby 2.8.0dev (2020-07-30T14:07:06Z master 352895b751) [x86_64-darwin18] -e:1: warning: ambiguous first argument; put parentheses or a space even after `/' operator ``` There is no `/` operator in there and there is also no ambiguity as adding a space after the first `/` is a syntax error. Is it possible to remove the warning altogether when the argument is lexed as a regexp? The message could use a rewording too, maybe "ambiguous first argument; put parentheses around argument or add a space after `/' operator" -- https://bugs.ruby-lang.org/ Unsubscribe: