Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add identifiers to attributes.md and its subchapters #1560

Merged
merged 18 commits into from
Nov 15, 2024

Conversation

chorman0773
Copy link
Contributor

This adds identifiers to the attributes.md file and its subchapters, being:

  • attributes/codegen.md
  • attributes/debugging.md
  • attributes/derive.md
  • attributes/diagnostics.md
  • attributes/limits.md
  • attributes/testing.md
  • attributes/type_system.md

@chorman0773 chorman0773 added S-waiting-on-review Status: The marked PR is awaiting review from the PR author. T-spec Team: spec labels Aug 6, 2024
@@ -15,29 +16,32 @@
>       [_DelimTokenTree_]\
>    | `=` [_Expression_]

r[attributes.general]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and all elsewhere.

Suggested change
r[attributes.general]
r[attributes.intro]

(As an aside, I wonder if definition might fit these kinds of paragraphs better. We should probably define our common terms so that we understand when to use them appropriately.)

When applied to a function in an `extern` block the attribute must also be applied to any linked
implementations, otherwise undefined behavior results. When applied to a function which is made
available to an `extern` block, the declaration in the `extern` block must also have the attribute,
otherwise undefined behavior results.

### Behavior

r[attributes.codegen.track_caller.behaviour]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and elsewhere

Suggested change
r[attributes.codegen.track_caller.behaviour]
r[attributes.codegen.track_caller.behavior]

@@ -397,8 +439,12 @@ And so on.

### Limitations

r[attributes.codegen.track_caller.limits]

r[attributes.codegent.track_caller.hint]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please be careful about spelling.

Suggested change
r[attributes.codegent.track_caller.hint]
r[attributes.codegen.track_caller.hint]

Both attributes can be used on [functions]. When applied to a function in a
[trait], they apply only to that function when used as a default function for
a trait implementation and not to all trait implementations. The attributes
have no effect on a trait function without a body.

### The `inline` attribute

r[attributes.codgen.inline]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
r[attributes.codgen.inline]
r[attributes.codegen.inline]

The *`deprecated` attribute* marks an item as deprecated. `rustc` will issue
warnings on usage of `#[deprecated]` items. `rustdoc` will show item
deprecation, including the `since` version and `note`, if available.

r[attributes.diagnostics.deprectead.syntax]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
r[attributes.diagnostics.deprectead.syntax]
r[attributes.diagnostics.deprecated.syntax]

It uses the [_MetaListNameValueStr_] syntax to specify its inputs, and must be specified as a crate attribute.

### Using `debugger_visualizer` with Natvis

r[attributes.debugger.debugger_visualizer.natvis]

r[attributes.debugger.debugger_visualizer.natvis-general]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any particular reason to use - and not . for nativis-general?

r[attributes.derive]


r[attributes.derived.general]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
r[attributes.derived.general]
r[attributes.derive.general]

@@ -390,6 +432,7 @@ impl Trait for i32 {
5i32.use_me();
```

r[attributes.diagnostics.must_use.impl-function]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To distinguish from other non-trait impl, maybe?

Suggested change
r[attributes.diagnostics.must_use.impl-function]
r[attributes.diagnostics.must_use.trait-impl-function]

@@ -424,36 +467,59 @@ When used on a function in a trait implementation, the attribute does nothing.

## The `diagnostic` tool attribute namespace

r[attributes.diagnostics.namespace]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, I'm on the fence here, since the namespace is singular diagnostic. I realize this is in the "diagnostics" section, and being inconsistent with the rest of the section could be more trouble. I'm just a little concerned about seeing diagnostics.namespace could confuse a reader, since it is a subtle distinction. WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking the section should be changed to diagnostic because I've been otherwise favouring the singular form except for lists and when the construct is plural in the language.

The following [attributes] affect compile-time limits.

## The `recursion_limit` attribute

r[attributes.limits.recursion_limits]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and elsewhere.

Suggested change
r[attributes.limits.recursion_limits]
r[attributes.limits.recursion_limit]

@chorman0773
Copy link
Contributor Author

I need to modify the identifiers to be more consistent with the other chapters, and the guidelines I wrote.

@rustbot modify-labels +S-waiting-on-author -S-waiting-on-review

@chorman0773 chorman0773 added S-waiting-on-author Status: The marked PR is awaiting some action (such as code changes) from the PR author. and removed S-waiting-on-review Status: The marked PR is awaiting review from the PR author. labels Sep 12, 2024
@traviscross
Copy link
Contributor

@rustbot labels +S-waiting-on-author -S-waiting-on-review

The CI is failing on this one.

@chorman0773 chorman0773 force-pushed the spec-add-identifiers-attributes branch from e579b2a to d3ef277 Compare October 21, 2024 16:20
@chorman0773
Copy link
Contributor Author

@rustbot labels +S-waiting-on-review -S-waiting-on-author

@rustbot rustbot added S-waiting-on-review Status: The marked PR is awaiting review from the PR author. and removed S-waiting-on-author Status: The marked PR is awaiting some action (such as code changes) from the PR author. labels Oct 21, 2024
Copy link
Contributor

@ehuss ehuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

These are some misc rule name changes. Some of them are to give the
rules more specific names (indicating what they do, instead of using
generic terms).

The `allowed-positions` name is intended to be used for all attributes
to have a specific rule that defines where an attribute may be used. It
is not consistently used, yet. Also, some of the paragraphs mix "where
it goes" with "what it does" that should probably be teased apart so
that we can label those independently.

I expect us to do some more cleanup to bring some consistency to the
attribute rules since there are a lot of attributes, and they generally
have the same requirements of what needs to be specified.
This is keeping in line with using plurals throughout the rest of the
naming convention. This also differentiates it from the `diagnostic`
namespace. The `diagnostic` namespace remains singular, and is not
nested with the plural `diagnostics` just to avoid the repetition.
@ehuss ehuss force-pushed the spec-add-identifiers-attributes branch from 94aa44f to 4ef5f5d Compare November 15, 2024 21:42
@ehuss ehuss enabled auto-merge November 15, 2024 21:43
@ehuss ehuss added this pull request to the merge queue Nov 15, 2024
Merged via the queue into rust-lang:master with commit 41ccb0e Nov 15, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: The marked PR is awaiting review from the PR author. T-spec Team: spec
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants