Skip to content

Should the sets of library and language features be disjoint? #43089

Closed
@est31

Description

@est31

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions