Description
Currently, there is a check in tidy that ensures that there is no library feature and language feature of the same name. Its presence is also mentioned in the documentation above.
This check was present since #21248, and has caused multiple additions that have both library and language components to be split up:
i128
/i128_type
inclusive_range
/inclusive_range_syntax
profiler_runtime
/profiler_runtime_lib
PR #40939 has challenged the status quo, by reusing the lang feature proc_macro
inside libraries provided to programs. It actually added an exception to the tidy check in order to get it passing.
There has been discussion about this in the thread of #40939 and the resolution was to allow proc_macro
to share the feature gate.
So my question is: which purpose does this check serve? should the check be present, or should it be abolished? Should the proc_macro
feature gate be split up into a library component and a lang component?