-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Rewrite inline
attribute parser to use new infrastructure and improve diagnostics for all parsed attributes
#138165
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
base: master
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@@ -584,7 +546,6 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs { | |||
return OptimizeAttr::Default; | |||
}; | |||
|
|||
inline_span = Some(attr.span()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This fixes #137950
e6dad01
to
2a707bf
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #138302) made this pull request unmergeable. Please resolve the merge conflicts. |
b7dda57
to
88a713a
Compare
This comment has been minimized.
This comment has been minimized.
@rustbot review |
This comment has been minimized.
This comment has been minimized.
ah shit, broke clippy 😭 |
☔ The latest upstream changes (presumably #142432) made this pull request unmergeable. Please resolve the merge conflicts. |
//@ is "$.index[?(@.name=='just_inline')].attrs" '["#[inline]"]' | ||
//@ is "$.index[?(@.name=='just_inline')].attrs" '["#[attr = Inline(Hint)]"]' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So to understand https://github.com/rust-lang/rust/pull/138165/files?diff=unified&w=1#r2143839007 right, we could represent this attrs
list in json not as a list of strings, but as a list of either strings (unstable format, only print or view it) or json maps that contain all the information in a structured way and doesn't require consumers to re-parse it.
If we change the map representation, we bump the format. If we change the string representation, we do not.
Either way, we either break csc or we bump the version so csc can gate its parser on it. The only question we're asking right now is whether we bump the version twice (once now, and once for when we move to json maps).
is that about right @aDotInTheVoid @obi1kenobi ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a c-s-c perspective I don't have a strong opinion, we don't check #[inline]
and the change shouldn't break us.
From a rustdoc JSON format perspective, I think it's kinder to other rustdoc JSON users if we bump.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@oli-obk if we bump, we should also decide if we bump from now on on every reworked attribute parser.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@obi1kenobi and I talked synchronously for a bit, and for now we both think it's best to do version bumps for a bit until we can implement a more structured approach. Pushed a commit that does the bump.
This comment has been minimized.
This comment has been minimized.
220615f
to
43dd618
Compare
rustdoc-json-types is a public (although nightly-only) API. If possible, consider changing |
I think that addresses all the review comments by others @oli-obk :) |
☔ The latest upstream changes (presumably #142589) made this pull request unmergeable. Please resolve the merge conflicts. |
src/rustdoc-json-types/lib.rs
Outdated
@@ -30,7 +30,7 @@ pub type FxHashMap<K, V> = HashMap<K, V>; // re-export for use in src/librustdoc | |||
/// This integer is incremented with every breaking change to the API, | |||
/// and is returned along with the JSON blob as [`Crate::format_version`]. | |||
/// Consuming code should assert that this value matches the format version(s) that it supports. | |||
pub const FORMAT_VERSION: u32 = 46; | |||
pub const FORMAT_VERSION: u32 = 47; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this one seems to have few conflicts, will preemptively bump to 48
r? @oli-obk
This PR:
Builds on top of #138164
Closes #137950