Group together more size assertions.
Also add a few more assertions for some relevant token-related types. And fix an erroneous comment in `rustc_errors`.
This commit is contained in:
parent
307dd938d7
commit
5ab68a82d5
4 changed files with 37 additions and 25 deletions
|
@ -256,10 +256,6 @@ pub enum TokenKind {
|
||||||
Eof,
|
Eof,
|
||||||
}
|
}
|
||||||
|
|
||||||
// `TokenKind` is used a lot. Make sure it doesn't unintentionally get bigger.
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(TokenKind, 16);
|
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
|
#[derive(Clone, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)]
|
||||||
pub struct Token {
|
pub struct Token {
|
||||||
pub kind: TokenKind,
|
pub kind: TokenKind,
|
||||||
|
@ -751,10 +747,6 @@ pub enum Nonterminal {
|
||||||
NtVis(P<ast::Visibility>),
|
NtVis(P<ast::Visibility>),
|
||||||
}
|
}
|
||||||
|
|
||||||
// `Nonterminal` is used a lot. Make sure it doesn't unintentionally get bigger.
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(Nonterminal, 16);
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Encodable, Decodable)]
|
#[derive(Debug, Copy, Clone, PartialEq, Encodable, Decodable)]
|
||||||
pub enum NonterminalKind {
|
pub enum NonterminalKind {
|
||||||
Item,
|
Item,
|
||||||
|
@ -893,3 +885,16 @@ where
|
||||||
panic!("interpolated tokens should not be present in the HIR")
|
panic!("interpolated tokens should not be present in the HIR")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Some types are used a lot. Make sure they don't unintentionally get bigger.
|
||||||
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
|
mod size_asserts {
|
||||||
|
use super::*;
|
||||||
|
use rustc_data_structures::static_assert_size;
|
||||||
|
// These are in alphabetical order, which is easy to maintain.
|
||||||
|
static_assert_size!(Lit, 12);
|
||||||
|
static_assert_size!(LitKind, 2);
|
||||||
|
static_assert_size!(Nonterminal, 16);
|
||||||
|
static_assert_size!(Token, 24);
|
||||||
|
static_assert_size!(TokenKind, 16);
|
||||||
|
}
|
||||||
|
|
|
@ -47,10 +47,6 @@ pub enum TokenTree {
|
||||||
Delimited(DelimSpan, Delimiter, TokenStream),
|
Delimited(DelimSpan, Delimiter, TokenStream),
|
||||||
}
|
}
|
||||||
|
|
||||||
// This type is used a lot. Make sure it doesn't unintentionally get bigger.
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(TokenTree, 32);
|
|
||||||
|
|
||||||
// Ensure all fields of `TokenTree` is `Send` and `Sync`.
|
// Ensure all fields of `TokenTree` is `Send` and `Sync`.
|
||||||
#[cfg(parallel_compiler)]
|
#[cfg(parallel_compiler)]
|
||||||
fn _dummy()
|
fn _dummy()
|
||||||
|
@ -308,10 +304,6 @@ pub struct AttributesData {
|
||||||
#[derive(Clone, Debug, Default, Encodable, Decodable)]
|
#[derive(Clone, Debug, Default, Encodable, Decodable)]
|
||||||
pub struct TokenStream(pub(crate) Lrc<Vec<TokenTree>>);
|
pub struct TokenStream(pub(crate) Lrc<Vec<TokenTree>>);
|
||||||
|
|
||||||
// `TokenStream` is used a lot. Make sure it doesn't unintentionally get bigger.
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(TokenStream, 8);
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, HashStable_Generic)]
|
#[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, HashStable_Generic)]
|
||||||
pub enum Spacing {
|
pub enum Spacing {
|
||||||
Alone,
|
Alone,
|
||||||
|
@ -664,3 +656,16 @@ impl DelimSpan {
|
||||||
self.open.with_hi(self.close.hi())
|
self.open.with_hi(self.close.hi())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Some types are used a lot. Make sure they don't unintentionally get bigger.
|
||||||
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
|
mod size_asserts {
|
||||||
|
use super::*;
|
||||||
|
use rustc_data_structures::static_assert_size;
|
||||||
|
// These are in alphabetical order, which is easy to maintain.
|
||||||
|
static_assert_size!(AttrTokenStream, 8);
|
||||||
|
static_assert_size!(AttrTokenTree, 32);
|
||||||
|
static_assert_size!(LazyAttrTokenStream, 8);
|
||||||
|
static_assert_size!(TokenStream, 8);
|
||||||
|
static_assert_size!(TokenTree, 32);
|
||||||
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ pub type PErr<'a> = DiagnosticBuilder<'a, ErrorGuaranteed>;
|
||||||
pub type PResult<'a, T> = Result<T, PErr<'a>>;
|
pub type PResult<'a, T> = Result<T, PErr<'a>>;
|
||||||
|
|
||||||
// `PResult` is used a lot. Make sure it doesn't unintentionally get bigger.
|
// `PResult` is used a lot. Make sure it doesn't unintentionally get bigger.
|
||||||
// (See also the comment on `DiagnosticBuilder`'s `diagnostic` field.)
|
// (See also the comment on `DiagnosticBuilderInner`'s `diagnostic` field.)
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
rustc_data_structures::static_assert_size!(PResult<'_, ()>, 16);
|
rustc_data_structures::static_assert_size!(PResult<'_, ()>, 16);
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
|
|
|
@ -32,11 +32,6 @@ pub struct AttrWrapper {
|
||||||
start_pos: usize,
|
start_pos: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
// This struct is passed around very frequently,
|
|
||||||
// so make sure it doesn't accidentally get larger
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(AttrWrapper, 16);
|
|
||||||
|
|
||||||
impl AttrWrapper {
|
impl AttrWrapper {
|
||||||
pub(super) fn new(attrs: AttrVec, start_pos: usize) -> AttrWrapper {
|
pub(super) fn new(attrs: AttrVec, start_pos: usize) -> AttrWrapper {
|
||||||
AttrWrapper { attrs, start_pos }
|
AttrWrapper { attrs, start_pos }
|
||||||
|
@ -96,9 +91,6 @@ struct LazyAttrTokenStreamImpl {
|
||||||
replace_ranges: Box<[ReplaceRange]>,
|
replace_ranges: Box<[ReplaceRange]>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
|
||||||
rustc_data_structures::static_assert_size!(LazyAttrTokenStreamImpl, 144);
|
|
||||||
|
|
||||||
impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
|
impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
|
||||||
fn to_attr_token_stream(&self) -> AttrTokenStream {
|
fn to_attr_token_stream(&self) -> AttrTokenStream {
|
||||||
// The token produced by the final call to `{,inlined_}next` was not
|
// The token produced by the final call to `{,inlined_}next` was not
|
||||||
|
@ -461,3 +453,13 @@ fn make_token_stream(
|
||||||
}
|
}
|
||||||
AttrTokenStream::new(final_buf.inner)
|
AttrTokenStream::new(final_buf.inner)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Some types are used a lot. Make sure they don't unintentionally get bigger.
|
||||||
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
|
mod size_asserts {
|
||||||
|
use super::*;
|
||||||
|
use rustc_data_structures::static_assert_size;
|
||||||
|
// These are in alphabetical order, which is easy to maintain.
|
||||||
|
static_assert_size!(AttrWrapper, 16);
|
||||||
|
static_assert_size!(LazyAttrTokenStreamImpl, 144);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue