From 842f600a93deca71e908ef5bb16e4e6aed519890 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 18 Sep 2019 23:31:53 +0900 Subject: [PATCH] Look up the language module Look up language module with `MakeMakefile.[]`, insted of a accessing constant under that module directly, to get rid of expose the constant to the toplevel inadvertently. --- ext/-test-/cxxanyargs/extconf.rb | 2 +- lib/mkmf.rb | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ext/-test-/cxxanyargs/extconf.rb b/ext/-test-/cxxanyargs/extconf.rb index c1823a4042..7e2449a457 100644 --- a/ext/-test-/cxxanyargs/extconf.rb +++ b/ext/-test-/cxxanyargs/extconf.rb @@ -1,6 +1,6 @@ # frozen_string_literal: false -cxx = MakeMakefile::CXX +cxx = MakeMakefile["C++"] ok = cxx.try_compile(<<~'begin', "") do |x| #include "ruby/config.h" diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 8df6e9ad59..ce72668501 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -2776,7 +2776,17 @@ distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb realclean: distclean " - module CXX + @lang = Hash.new(self) + + def self.[](name) + @lang.fetch(name) + end + + def self.[]=(name, mod) + @lang[name] = mod + end + + self["C++"] = Module.new do include MakeMakefile extend self