Merge pull request #14409 from carlocab/compiler-check
rubocops/lines: update hard-coded compiler check
This commit is contained in:
commit
518c961f4c
@ -617,19 +617,23 @@ module RuboCop
|
||||
|
||||
# Avoid hard-coding compilers
|
||||
find_every_method_call_by_name(body_node, :system).each do |method|
|
||||
next if @formula_name == "bazel" # TODO: Remove shim bypass in bazel.
|
||||
|
||||
param = parameters(method).first
|
||||
if (match = regex_match_group(param, %r{^(/usr/bin/)?(gcc|llvm-gcc|clang)(\s|$)}))
|
||||
if (match = regex_match_group(param, %r{^(/usr/bin/)?(gcc|clang|cc|c[89]9)(\s|$)}))
|
||||
problem "Use \"\#{ENV.cc}\" instead of hard-coding \"#{match[2]}\""
|
||||
elsif (match = regex_match_group(param, %r{^(/usr/bin/)?((g|llvm-g|clang)\+\+)(\s|$)}))
|
||||
elsif (match = regex_match_group(param, %r{^(/usr/bin/)?((g|clang|c)\+\+)(\s|$)}))
|
||||
problem "Use \"\#{ENV.cxx}\" instead of hard-coding \"#{match[2]}\""
|
||||
end
|
||||
end
|
||||
|
||||
find_instance_method_call(body_node, "ENV", :[]=) do |method|
|
||||
next if @formula_name == "bazel" # TODO: Remove shim bypass in bazel.
|
||||
|
||||
param = parameters(method)[1]
|
||||
if (match = regex_match_group(param, %r{^(/usr/bin/)?(gcc|llvm-gcc|clang)(\s|$)}))
|
||||
if (match = regex_match_group(param, %r{^(/usr/bin/)?(gcc|clang|cc|c[89]9)(\s|$)}))
|
||||
problem "Use \"\#{ENV.cc}\" instead of hard-coding \"#{match[2]}\""
|
||||
elsif (match = regex_match_group(param, %r{^(/usr/bin/)?((g|llvm-g|clang)\+\+)(\s|$)}))
|
||||
elsif (match = regex_match_group(param, %r{^(/usr/bin/)?((g|clang|c)\+\+)(\s|$)}))
|
||||
problem "Use \"\#{ENV.cxx}\" instead of hard-coding \"#{match[2]}\""
|
||||
end
|
||||
end
|
||||
|
||||
@ -255,14 +255,14 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "reports an offense when a hard-coded `llvm-g++` is set as COMPILER_PATH" do
|
||||
it "reports an offense when a hard-coded `c++` is set as COMPILER_PATH" do
|
||||
expect_offense(<<~'RUBY')
|
||||
class Foo < Formula
|
||||
desc "foo"
|
||||
url 'https://brew.sh/foo-1.0.tgz'
|
||||
def install
|
||||
ENV["COMPILER_PATH"] = "/usr/bin/llvm-g++"
|
||||
^^^^^^^^^^^^^^^^^^^ Use "#{ENV.cxx}" instead of hard-coding "llvm-g++"
|
||||
ENV["COMPILER_PATH"] = "/usr/bin/c++"
|
||||
^^^^^^^^^^^^^^ Use "#{ENV.cxx}" instead of hard-coding "c++"
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user