@@ -377,3 +377,33 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
377
377
}
378
378
}
379
379
}
380
+
381
+ // Some nodes are used a lot. Make sure they don't unintentionally get bigger.
382
+ //
383
+ // These assertions are here, not in `src/rustdoc-json-types/lib.rs` where the types are defined,
384
+ // because we have access to `static_assert_size` here.
385
+ #[ cfg( target_pointer_width = "64" ) ]
386
+ mod size_asserts {
387
+ use rustc_data_structures:: static_assert_size;
388
+
389
+ use super :: types:: * ;
390
+ // tidy-alphabetical-start
391
+ static_assert_size ! ( AssocItemConstraint , 208 ) ;
392
+ static_assert_size ! ( Crate , 184 ) ;
393
+ static_assert_size ! ( ExternalCrate , 48 ) ;
394
+ static_assert_size ! ( FunctionPointer , 168 ) ;
395
+ static_assert_size ! ( GenericArg , 80 ) ;
396
+ static_assert_size ! ( GenericArgs , 104 ) ;
397
+ static_assert_size ! ( GenericBound , 72 ) ;
398
+ static_assert_size ! ( GenericParamDef , 136 ) ;
399
+ static_assert_size ! ( Impl , 304 ) ;
400
+ // `Item` contains a `PathBuf`, which is different sizes on different OSes.
401
+ static_assert_size ! ( Item , 528 + size_of:: <std:: path:: PathBuf >( ) ) ;
402
+ static_assert_size ! ( ItemSummary , 32 ) ;
403
+ static_assert_size ! ( PolyTrait , 64 ) ;
404
+ static_assert_size ! ( PreciseCapturingArg , 32 ) ;
405
+ static_assert_size ! ( TargetFeature , 80 ) ;
406
+ static_assert_size ! ( Type , 80 ) ;
407
+ static_assert_size ! ( WherePredicate , 160 ) ;
408
+ // tidy-alphabetical-end
409
+ }
0 commit comments