diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-02-21 06:51:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-02-21 06:51:45 +0200 |
commit | 995cd7946bf605804603fe79c6cef1ddf6db83b5 (patch) | |
tree | bf30105941c5fba32ac2e0cc696d6b1146f42c04 | |
parent | a7a3cf206851b5896d938efa34a142aa1f0649b0 (diff) |
Ban module names that start with underscore
-rw-r--r-- | libbuild2/buildfile | 9 | ||||
-rw-r--r-- | libbuild2/parser.cxx | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/libbuild2/buildfile b/libbuild2/buildfile index b6c59a5..2fb4bde 100644 --- a/libbuild2/buildfile +++ b/libbuild2/buildfile @@ -227,9 +227,12 @@ else # Generated options parser. # -# @@ Consider generating common cli runtime namespace if adding more option -# files. Plus sommon types-parser.?xx (which could also potentially be -# reused by the driver). +# Note that the cli runtime namespace is build2::build::cli rather than +# build2::cli. That's because the cli namespace inside build2 is reserved for +# the cli build system module (libbuild2-cli). In fact, every namespace inside +# build2 is reserved for a potential module and the only namespace names we +# can use are build (this name, along with import and export, is reserved by +# the build system core) and names that start with an underscore. # if $cli.configured { diff --git a/libbuild2/parser.cxx b/libbuild2/parser.cxx index bec3230..b76bb18 100644 --- a/libbuild2/parser.cxx +++ b/libbuild2/parser.cxx @@ -3348,6 +3348,9 @@ namespace build2 n = move (i->value); + if (n[0] == '_') + fail (l) << "module name '" << n << "' starts with underscore"; + if (i->pair) try { |