Use tikv-jemallocator in rustc/rustdoc in addition to jemalloc-sys when enabled.
In https://github.com/rust-lang/rust/pull/81782 it was mentioned that one reason rustc may benefit from minimalloc is it doesn't use the `sdallocx` api from jemalloc.
Currently, on unix, rust uses jemalloc by importing its symbols to use them with the default, System (libc) global allocator.
This PR switches its global alloc to `tikv-jemallocator`, which correctly uses sized deallocation (https://docs.rs/tikv-jemallocator/0.4.1/src/tikv_jemallocator/lib.rs.html#121-126). `tikv-jemallocator`, as far as I can tell, is a more up-to-date set of bindings to jemalloc than `jemallocator`
The perf results of this pr are in large part due to the version upgrade of jemalloc, but sized deallocation has a non-trivial improvement, particularly to rustdoc.
This pr also includes changes to bootstrap to correctly pass the jemalloc feature through to the rustdoc build
// previous iteration.
required_features.clear();
- // Validate register classes against currently enabled target
- // features. We check that at least one type is available for
- // the current target.
let reg_class = reg.reg_class();
if reg_class == asm::InlineAsmRegClass::Err {
continue;
}
- for &(_, feature) in reg_class.supported_types(asm_arch.unwrap()) {
- if let Some(feature) = feature {
- if self.sess.target_features.contains(&Symbol::intern(feature)) {
+
+ // We ignore target feature requirements for clobbers: if the
+ // feature is disabled then the compiler doesn't care what we
+ // do with the registers.
+ //
+ // Note that this is only possible for explicit register
+ // operands, which cannot be used in the asm string.
+ let is_clobber = matches!(
+ op,
+ hir::InlineAsmOperand::Out {
+ reg: asm::InlineAsmRegOrRegClass::Reg(_),
+ late: _,
+ expr: None
+ }
+ );
+
+ if !is_clobber {
+ // Validate register classes against currently enabled target
+ // features. We check that at least one type is available for
+ // the current target.
+ for &(_, feature) in reg_class.supported_types(asm_arch.unwrap()) {
+ if let Some(feature) = feature {
+ if self.sess.target_features.contains(&Symbol::intern(feature)) {
+ required_features.clear();
+ break;
+ } else {
+ required_features.push(feature);
+ }
+ } else {
required_features.clear();
break;
- } else {
- required_features.push(feature);
}
- } else {
- required_features.clear();
- break;
}
- }
- // We are sorting primitive strs here and can use unstable sort here
- required_features.sort_unstable();
- required_features.dedup();
- match &required_features[..] {
- [] => {}
- [feature] => {
- let msg = format!(
- "register class `{}` requires the `{}` target feature",
- reg_class.name(),
- feature
- );
- sess.struct_span_err(op_sp, &msg).emit();
- }
- features => {
- let msg = format!(
- "register class `{}` requires at least one target feature: {}",
- reg_class.name(),
- features.join(", ")
- );
- sess.struct_span_err(op_sp, &msg).emit();
+ // We are sorting primitive strs here and can use unstable sort here
+ required_features.sort_unstable();
+ required_features.dedup();
+ match &required_features[..] {
+ [] => {}
+ [feature] => {
+ let msg = format!(
+ "register class `{}` requires the `{}` target feature",
+ reg_class.name(),
+ feature
+ );
+ sess.struct_span_err(op_sp, &msg).emit();
+ }
+ features => {
+ let msg = format!(
+ "register class `{}` requires at least one target feature: {}",
+ reg_class.name(),
+ features.join(", ")
+ );
+ sess.struct_span_err(op_sp, &msg).emit();
+ }
}
}
use crate::cfg_eval::cfg_eval;
-use rustc_ast::{self as ast, token, ItemKind, MetaItemKind, NestedMetaItem, StmtKind};
+use rustc_ast::{self as ast, attr, token, ItemKind, MetaItemKind, NestedMetaItem, StmtKind};
use rustc_errors::{struct_span_err, Applicability};
use rustc_expand::base::{Annotatable, ExpandResult, ExtCtxt, Indeterminate, MultiItemModifier};
use rustc_feature::AttributeTemplate;
return ExpandResult::Ready(vec![item]);
}
- let template =
- AttributeTemplate { list: Some("Trait1, Trait2, ..."), ..Default::default() };
- let attr = ecx.attribute(meta_item.clone());
- validate_attr::check_builtin_attribute(&sess.parse_sess, &attr, sym::derive, template);
+ let result =
+ ecx.resolver.resolve_derives(ecx.current_expansion.id, ecx.force_mode, &|| {
+ let template =
+ AttributeTemplate { list: Some("Trait1, Trait2, ..."), ..Default::default() };
+ let attr = attr::mk_attr_outer(meta_item.clone());
+ validate_attr::check_builtin_attribute(
+ &sess.parse_sess,
+ &attr,
+ sym::derive,
+ template,
+ );
- let derives: Vec<_> = attr
- .meta_item_list()
- .unwrap_or_default()
- .into_iter()
- .filter_map(|nested_meta| match nested_meta {
- NestedMetaItem::MetaItem(meta) => Some(meta),
- NestedMetaItem::Literal(lit) => {
- // Reject `#[derive("Debug")]`.
- report_unexpected_literal(sess, &lit);
- None
- }
- })
- .map(|meta| {
- // Reject `#[derive(Debug = "value", Debug(abc))]`, but recover the paths.
- report_path_args(sess, &meta);
- meta.path
- })
- .collect();
+ attr.meta_item_list()
+ .unwrap_or_default()
+ .into_iter()
+ .filter_map(|nested_meta| match nested_meta {
+ NestedMetaItem::MetaItem(meta) => Some(meta),
+ NestedMetaItem::Literal(lit) => {
+ // Reject `#[derive("Debug")]`.
+ report_unexpected_literal(sess, &lit);
+ None
+ }
+ })
+ .map(|meta| {
+ // Reject `#[derive(Debug = "value", Debug(abc))]`, but recover the paths.
+ report_path_args(sess, &meta);
+ meta.path
+ })
+ .map(|path| (path, None))
+ .collect()
+ });
- // FIXME: Try to cache intermediate results to avoid collecting same paths multiple times.
- match ecx.resolver.resolve_derives(ecx.current_expansion.id, derives, ecx.force_mode) {
+ match result {
Ok(()) => ExpandResult::Ready(cfg_eval(ecx, item)),
Err(Indeterminate) => ExpandResult::Retry(item),
}
use rustc_hir as hir;
use rustc_middle::ty::layout::TyAndLayout;
use rustc_middle::{bug, span_bug};
-use rustc_span::{Pos, Span};
+use rustc_span::{Pos, Span, Symbol};
use rustc_target::abi::*;
use rustc_target::asm::*;
// Collect the types of output operands
let mut constraints = vec![];
+ let mut clobbers = vec![];
let mut output_types = vec![];
let mut op_idx = FxHashMap::default();
for (idx, op) in operands.iter().enumerate() {
match *op {
InlineAsmOperandRef::Out { reg, late, place } => {
+ let is_target_supported = |reg_class: InlineAsmRegClass| {
+ for &(_, feature) in reg_class.supported_types(asm_arch) {
+ if let Some(feature) = feature {
+ if self.tcx.sess.target_features.contains(&Symbol::intern(feature))
+ {
+ return true;
+ }
+ } else {
+ // Register class is unconditionally supported
+ return true;
+ }
+ }
+ false
+ };
+
let mut layout = None;
let ty = if let Some(ref place) = place {
layout = Some(&place.layout);
llvm_fixup_output_type(self.cx, reg.reg_class(), &place.layout)
+ } else if !is_target_supported(reg.reg_class()) {
+ // We turn discarded outputs into clobber constraints
+ // if the target feature needed by the register class is
+ // disabled. This is necessary otherwise LLVM will try
+ // to actually allocate a register for the dummy output.
+ assert!(matches!(reg, InlineAsmRegOrRegClass::Reg(_)));
+ clobbers.push(format!("~{}", reg_to_llvm(reg, None)));
+ continue;
} else {
// If the output is discarded, we don't really care what
// type is used. We're just using this to tell LLVM to
}
}
+ constraints.append(&mut clobbers);
if !options.contains(InlineAsmOptions::PRESERVES_FLAGS) {
match asm_arch {
InlineAsmArch::AArch64 | InlineAsmArch::Arm => {
// Note that currently the `wasm-import-module` doesn't do anything, but
// eventually LLVM 7 should read this and ferry the appropriate import
// module to the output file.
- if cx.tcx.sess.target.arch == "wasm32" {
+ if cx.tcx.sess.target.is_like_wasm {
if let Some(module) = wasm_import_module(cx.tcx, instance.def_id()) {
llvm::AddFunctionAttrStringValue(
llfn,
// On the wasm target once the `atomics` feature is enabled that means that
// we're no longer single-threaded, or otherwise we don't want LLVM to
// lower atomic operations to single-threaded operations.
- if singlethread
- && sess.target.llvm_target.contains("wasm32")
- && sess.target_features.contains(&sym::atomics)
- {
+ if singlethread && sess.target.is_like_wasm && sess.target_features.contains(&sym::atomics) {
singlethread = false;
}
// thresholds copied from clang.
match (opt_level, opt_size, inline_threshold) {
(.., Some(t)) => {
- llvm::LLVMPassManagerBuilderUseInlinerWithThreshold(builder, t as u32);
+ llvm::LLVMPassManagerBuilderUseInlinerWithThreshold(builder, t);
}
(llvm::CodeGenOptLevel::Aggressive, ..) => {
llvm::LLVMPassManagerBuilderUseInlinerWithThreshold(builder, 275);
);
}
- // Insert `llvm.ident` metadata on the wasm32 targets since that will
+ // Insert `llvm.ident` metadata on the wasm targets since that will
// get hooked up to the "producer" sections `processed-by` information.
- if tcx.sess.opts.target_triple.triple().starts_with("wasm32") {
+ if tcx.sess.target.is_like_wasm {
let name_metadata = llvm::LLVMMDStringInContext(
debug_context.llcontext,
rustc_producer.as_ptr().cast(),
}
}
-/// Add arbitrary "user defined" args defined from command line and by `#[link_args]` attributes.
+/// Add arbitrary "user defined" args defined from command line.
/// FIXME: Determine where exactly these args need to be inserted.
-fn add_user_defined_link_args(
- cmd: &mut dyn Linker,
- sess: &Session,
- codegen_results: &CodegenResults,
-) {
+fn add_user_defined_link_args(cmd: &mut dyn Linker, sess: &Session) {
cmd.args(&sess.opts.cg.link_args);
- cmd.args(&*codegen_results.crate_info.link_args);
}
/// Add arbitrary "late link" args defined by the target spec.
add_rpath_args(cmd, sess, codegen_results, out_filename);
// OBJECT-FILES-MAYBE, CUSTOMIZATION-POINT
- add_user_defined_link_args(cmd, sess, codegen_results);
+ add_user_defined_link_args(cmd, sess);
// NO-OPT-OUT, OBJECT-FILES-NO, AUDIT-ORDER
cmd.finalize();
// * On OSX they have their own linker, not binutils'
// * For WebAssembly the only functional linker is LLD, which doesn't
// support hint flags
- !self.sess.target.is_like_osx && self.sess.target.arch != "wasm32"
+ !self.sess.target.is_like_osx && !self.sess.target.is_like_wasm
}
// Some platforms take hints about whether a library is static or dynamic.
pub vectorize_loop: bool,
pub vectorize_slp: bool,
pub merge_functions: bool,
- pub inline_threshold: Option<usize>,
+ pub inline_threshold: Option<u32>,
pub new_llvm_pass_manager: bool,
pub emit_lifetime_markers: bool,
}
is_no_builtins: Default::default(),
native_libraries: Default::default(),
used_libraries: tcx.native_libraries(LOCAL_CRATE).iter().map(Into::into).collect(),
- link_args: tcx.link_args(LOCAL_CRATE),
crate_name: Default::default(),
used_crates_dynamic: cstore::used_crates(tcx, LinkagePreference::RequireDynamic),
used_crates_static: cstore::used_crates(tcx, LinkagePreference::RequireStatic),
pub native_libraries: FxHashMap<CrateNum, Vec<NativeLib>>,
pub crate_name: FxHashMap<CrateNum, String>,
pub used_libraries: Vec<NativeLib>,
- pub link_args: Lrc<Vec<String>>,
pub used_crate_source: FxHashMap<CrateNum, Lrc<CrateSource>>,
pub used_crates_static: Vec<(CrateNum, LibSource)>,
pub used_crates_dynamic: Vec<(CrateNum, LibSource)>,
"mips" | "mips64" => MIPS_ALLOWED_FEATURES,
"powerpc" | "powerpc64" => POWERPC_ALLOWED_FEATURES,
"riscv32" | "riscv64" => RISCV_ALLOWED_FEATURES,
- "wasm32" => WASM_ALLOWED_FEATURES,
+ "wasm32" | "wasm64" => WASM_ALLOWED_FEATURES,
_ => &[],
}
}
-#![cfg_attr(bootstrap, deny(invalid_codeblock_attributes))]
-#![cfg_attr(not(bootstrap), deny(rustdoc::invalid_codeblock_attributes))]
+#![deny(rustdoc::invalid_codeblock_attributes)]
//! This library is used to gather all error codes into one place,
//! the goal being to make their maintenance easier.
/// Error type that denotes indeterminacy.
pub struct Indeterminate;
+pub type DeriveResolutions = Vec<(ast::Path, Option<Lrc<SyntaxExtension>>)>;
+
pub trait ResolverExpand {
fn next_node_id(&mut self) -> NodeId;
fn resolve_derives(
&mut self,
expn_id: ExpnId,
- derives: Vec<ast::Path>,
force: bool,
+ derive_paths: &dyn Fn() -> DeriveResolutions,
) -> Result<(), Indeterminate>;
/// Take resolutions for paths inside the `#[derive(...)]` attribute with the given `ExpnId`
/// back from resolver.
- fn take_derive_resolutions(
- &mut self,
- expn_id: ExpnId,
- ) -> Option<Vec<(Lrc<SyntaxExtension>, ast::Path)>>;
+ fn take_derive_resolutions(&mut self, expn_id: ExpnId) -> Option<DeriveResolutions>;
/// Path resolution logic for `#[cfg_accessible(path)]`.
fn cfg_accessible(&mut self, expn_id: ExpnId, path: &ast::Path) -> Result<bool, Indeterminate>;
}
invocations.reserve(derives.len());
derives
.into_iter()
- .map(|(_exts, path)| {
+ .map(|(path, _exts)| {
// FIXME: Consider using the derive resolutions (`_exts`)
// instead of enqueuing the derives to be resolved again later.
let expn_id = ExpnId::fresh(None);
// feature-group-start: actual feature gates
// -------------------------------------------------------------------------
- /// Allows using the `#[link_args]` attribute.
- (active, link_args, "1.0.0", Some(29596), None),
-
/// Allows defining identifiers beyond ASCII.
(active, non_ascii_idents, "1.0.0", Some(55467), None),
// Linking:
gated!(naked, AssumedUsed, template!(Word), naked_functions, experimental!(naked)),
- gated!(
- link_args, Normal, template!(NameValueStr: "args"),
- "the `link_args` attribute is experimental and not portable across platforms, \
- it is recommended to use `#[link(name = \"foo\")] instead",
- ),
gated!(
link_ordinal, AssumedUsed, template!(List: "ordinal"), raw_dylib,
experimental!(link_ordinal)
/// Allows comparing raw pointers during const eval.
(removed, const_compare_raw_pointers, "1.46.0", Some(53020), None,
Some("cannot be allowed in const eval in any meaningful way")),
+ /// Allows using the `#[link_args]` attribute.
+ (removed, link_args, "1.53.0", Some(29596), None,
+ Some("removed in favor of using `-C link-arg=ARG` on command line, \
+ which is available from cargo build scripts with `cargo:rustc-link-arg` now")),
// -------------------------------------------------------------------------
// feature-group-end: removed features
mod dependency_format;
mod foreign_modules;
-mod link_args;
mod native_libs;
mod rmeta;
+++ /dev/null
-use rustc_hir as hir;
-use rustc_hir::itemlikevisit::ItemLikeVisitor;
-use rustc_middle::ty::TyCtxt;
-use rustc_span::symbol::{sym, Symbol};
-use rustc_target::spec::abi::Abi;
-
-crate fn collect(tcx: TyCtxt<'_>) -> Vec<String> {
- let mut collector = Collector { tcx, args: Vec::new() };
- tcx.hir().krate().visit_all_item_likes(&mut collector);
-
- for attr in tcx.hir().attrs(hir::CRATE_HIR_ID).iter() {
- if attr.has_name(sym::link_args) {
- if let Some(linkarg) = attr.value_str() {
- collector.add_link_args(linkarg);
- }
- }
- }
-
- collector.args
-}
-
-struct Collector<'tcx> {
- tcx: TyCtxt<'tcx>,
- args: Vec<String>,
-}
-
-impl<'tcx> ItemLikeVisitor<'tcx> for Collector<'tcx> {
- fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) {
- let abi = match it.kind {
- hir::ItemKind::ForeignMod { abi, .. } => abi,
- _ => return,
- };
- if abi == Abi::Rust || abi == Abi::RustIntrinsic || abi == Abi::PlatformIntrinsic {
- return;
- }
-
- // First, add all of the custom #[link_args] attributes
- let sess = &self.tcx.sess;
- for m in
- self.tcx.hir().attrs(it.hir_id()).iter().filter(|a| sess.check_name(a, sym::link_args))
- {
- if let Some(linkarg) = m.value_str() {
- self.add_link_args(linkarg);
- }
- }
- }
-
- fn visit_trait_item(&mut self, _it: &'tcx hir::TraitItem<'tcx>) {}
- fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem<'tcx>) {}
- fn visit_foreign_item(&mut self, _it: &'tcx hir::ForeignItem<'tcx>) {}
-}
-
-impl<'tcx> Collector<'tcx> {
- fn add_link_args(&mut self, args: Symbol) {
- self.args.extend(args.as_str().split(' ').filter(|s| !s.is_empty()).map(|s| s.to_string()))
- }
-}
use crate::creader::{CStore, LoadedMacro};
use crate::foreign_modules;
-use crate::link_args;
use crate::native_libs;
use crate::rmeta::{self, encoder};
foreign_modules::collect(tcx).into_iter().map(|m| (m.def_id, m)).collect();
Lrc::new(modules)
},
- link_args: |tcx, cnum| {
- assert_eq!(cnum, LOCAL_CRATE);
- Lrc::new(link_args::collect(tcx))
- },
// Returns a map from a sufficiently visible external item (i.e., an
// external item that is visible from at least one local module) to a
desc { |tcx| "native_library_kind({})", tcx.def_path_str(def_id) }
}
- query link_args(_: CrateNum) -> Lrc<Vec<String>> {
- eval_always
- desc { "looking up link arguments for a crate" }
- }
-
/// Does lifetime resolution, but does not descend into trait items. This
/// should only be used for resolving lifetimes of on trait definitions,
/// and is used to avoid cycles. Importantly, `resolve_lifetimes` still visits
use crate::ty::{self, ConstInt, DefIdTree, ParamConst, ScalarInt, Ty, TyCtxt, TypeFoldable};
use rustc_apfloat::ieee::{Double, Single};
use rustc_data_structures::fx::FxHashMap;
+use rustc_data_structures::sso::SsoHashSet;
use rustc_hir as hir;
use rustc_hir::def::{self, CtorKind, DefKind, Namespace};
use rustc_hir::def_id::{CrateNum, DefId, DefIdSet, CRATE_DEF_INDEX, LOCAL_CRATE};
}
fn print_type(mut self, ty: Ty<'tcx>) -> Result<Self::Type, Self::Error> {
- if self.tcx.sess.type_length_limit().value_within_limit(self.printed_type_count) {
+ let type_length_limit = self.tcx.sess.type_length_limit();
+ if type_length_limit.value_within_limit(self.printed_type_count) {
self.printed_type_count += 1;
self.pretty_print_type(ty)
} else {
where
T: TypeFoldable<'tcx>,
{
- struct LateBoundRegionNameCollector<'a>(&'a mut FxHashSet<Symbol>);
- impl<'tcx> ty::fold::TypeVisitor<'tcx> for LateBoundRegionNameCollector<'_> {
+ debug!("prepare_late_bound_region_info(value: {:?})", value);
+
+ struct LateBoundRegionNameCollector<'a, 'tcx> {
+ used_region_names: &'a mut FxHashSet<Symbol>,
+ type_collector: SsoHashSet<Ty<'tcx>>,
+ }
+
+ impl<'tcx> ty::fold::TypeVisitor<'tcx> for LateBoundRegionNameCollector<'_, 'tcx> {
+ type BreakTy = ();
+
fn visit_region(&mut self, r: ty::Region<'tcx>) -> ControlFlow<Self::BreakTy> {
+ debug!("LateBoundRegionNameCollector::visit_region(r: {:?}, address: {:p})", r, &r);
if let ty::ReLateBound(_, ty::BoundRegion { kind: ty::BrNamed(_, name), .. }) = *r {
- self.0.insert(name);
+ self.used_region_names.insert(name);
}
r.super_visit_with(self)
}
+
+ // We collect types in order to prevent really large types from compiling for
+ // a really long time. See issue #83150 for why this is necessary.
+ fn visit_ty(&mut self, ty: Ty<'tcx>) -> ControlFlow<Self::BreakTy> {
+ debug!("LateBoundRegionNameCollector::visit_ty(ty: {:?}", ty);
+ let not_previously_inserted = self.type_collector.insert(ty);
+ if not_previously_inserted {
+ ty.super_visit_with(self)
+ } else {
+ ControlFlow::CONTINUE
+ }
+ }
}
self.used_region_names.clear();
- let mut collector = LateBoundRegionNameCollector(&mut self.used_region_names);
+ let mut collector = LateBoundRegionNameCollector {
+ used_region_names: &mut self.used_region_names,
+ type_collector: SsoHashSet::new(),
+ };
value.visit_with(&mut collector);
self.region_index = 0;
}
use rustc_data_structures::ptr_key::PtrKey;
use rustc_data_structures::sync::Lrc;
use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder};
-use rustc_expand::base::{SyntaxExtension, SyntaxExtensionKind};
+use rustc_expand::base::{DeriveResolutions, SyntaxExtension, SyntaxExtensionKind};
use rustc_hir::def::Namespace::*;
use rustc_hir::def::{self, CtorOf, DefKind, NonMacroAttrKind, PartialRes};
use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, CRATE_DEF_INDEX};
AlreadySeen(Span),
}
+struct DeriveData {
+ resolutions: DeriveResolutions,
+ helper_attrs: Vec<(usize, Ident)>,
+ has_derive_copy: bool,
+}
+
/// The main resolver class.
///
/// This is the visitor that walks the whole crate.
output_macro_rules_scopes: FxHashMap<ExpnId, MacroRulesScopeRef<'a>>,
/// Helper attributes that are in scope for the given expansion.
helper_attrs: FxHashMap<ExpnId, Vec<Ident>>,
- /// Resolutions for paths inside the `#[derive(...)]` attribute with the given `ExpnId`.
- derive_resolutions: FxHashMap<ExpnId, Vec<(Lrc<SyntaxExtension>, ast::Path)>>,
+ /// Ready or in-progress results of resolving paths inside the `#[derive(...)]` attribute
+ /// with the given `ExpnId`.
+ derive_data: FxHashMap<ExpnId, DeriveData>,
/// Avoid duplicated errors for "name already defined".
name_already_seen: FxHashMap<Symbol, Span>,
invocation_parent_scopes: Default::default(),
output_macro_rules_scopes: Default::default(),
helper_attrs: Default::default(),
- derive_resolutions: Default::default(),
+ derive_data: Default::default(),
local_macro_def_scopes: FxHashMap::default(),
name_already_seen: FxHashMap::default(),
potentially_unused_imports: Vec::new(),
use crate::imports::ImportResolver;
use crate::Namespace::*;
use crate::{AmbiguityError, AmbiguityErrorMisc, AmbiguityKind, BuiltinMacroState, Determinacy};
-use crate::{CrateLint, ParentScope, ResolutionError, Resolver, Scope, ScopeSet, Weak};
+use crate::{CrateLint, DeriveData, ParentScope, ResolutionError, Resolver, Scope, ScopeSet, Weak};
use crate::{ModuleKind, ModuleOrUniformRoot, NameBinding, PathResult, Segment, ToNameBinding};
use rustc_ast::{self as ast, Inline, ItemKind, ModKind, NodeId};
use rustc_ast_lowering::ResolverAstLowering;
use rustc_data_structures::ptr_key::PtrKey;
use rustc_data_structures::sync::Lrc;
use rustc_errors::struct_span_err;
-use rustc_expand::base::Annotatable;
-use rustc_expand::base::{Indeterminate, ResolverExpand, SyntaxExtension, SyntaxExtensionKind};
+use rustc_expand::base::{Annotatable, DeriveResolutions, Indeterminate, ResolverExpand};
+use rustc_expand::base::{SyntaxExtension, SyntaxExtensionKind};
use rustc_expand::compile_declarative_macro;
use rustc_expand::expand::{AstFragment, Invocation, InvocationKind, SupportsMacroExpansion};
use rustc_feature::is_builtin_attr_name;
fn resolve_derives(
&mut self,
expn_id: ExpnId,
- derives: Vec<ast::Path>,
force: bool,
+ derive_paths: &dyn Fn() -> DeriveResolutions,
) -> Result<(), Indeterminate> {
// Block expansion of the container until we resolve all derives in it.
// This is required for two reasons:
// is applied, so they have to be produced by the container's expansion rather
// than by individual derives.
// - Derives in the container need to know whether one of them is a built-in `Copy`.
- // FIXME: Try to cache intermediate results to avoid resolving same derives multiple times.
+ // Temporarily take the data to avoid borrow checker conflicts.
+ let mut derive_data = mem::take(&mut self.derive_data);
+ let entry = derive_data.entry(expn_id).or_insert_with(|| DeriveData {
+ resolutions: derive_paths(),
+ helper_attrs: Vec::new(),
+ has_derive_copy: false,
+ });
let parent_scope = self.invocation_parent_scopes[&expn_id];
- let mut exts = Vec::new();
- let mut helper_attrs = Vec::new();
- let mut has_derive_copy = false;
- for path in derives {
- exts.push((
- match self.resolve_macro_path(
- &path,
- Some(MacroKind::Derive),
- &parent_scope,
- true,
- force,
- ) {
- Ok((Some(ext), _)) => {
- let span =
- path.segments.last().unwrap().ident.span.normalize_to_macros_2_0();
- helper_attrs
- .extend(ext.helper_attrs.iter().map(|name| Ident::new(*name, span)));
- has_derive_copy |= ext.builtin_name == Some(sym::Copy);
- ext
- }
- Ok(_) | Err(Determinacy::Determined) => self.dummy_ext(MacroKind::Derive),
- Err(Determinacy::Undetermined) => return Err(Indeterminate),
- },
- path,
- ))
+ for (i, (path, opt_ext)) in entry.resolutions.iter_mut().enumerate() {
+ if opt_ext.is_none() {
+ *opt_ext = Some(
+ match self.resolve_macro_path(
+ &path,
+ Some(MacroKind::Derive),
+ &parent_scope,
+ true,
+ force,
+ ) {
+ Ok((Some(ext), _)) => {
+ if !ext.helper_attrs.is_empty() {
+ let last_seg = path.segments.last().unwrap();
+ let span = last_seg.ident.span.normalize_to_macros_2_0();
+ entry.helper_attrs.extend(
+ ext.helper_attrs
+ .iter()
+ .map(|name| (i, Ident::new(*name, span))),
+ );
+ }
+ entry.has_derive_copy |= ext.builtin_name == Some(sym::Copy);
+ ext
+ }
+ Ok(_) | Err(Determinacy::Determined) => self.dummy_ext(MacroKind::Derive),
+ Err(Determinacy::Undetermined) => {
+ assert!(self.derive_data.is_empty());
+ self.derive_data = derive_data;
+ return Err(Indeterminate);
+ }
+ },
+ );
+ }
}
- self.derive_resolutions.insert(expn_id, exts);
- self.helper_attrs.insert(expn_id, helper_attrs);
+ // Sort helpers in a stable way independent from the derive resolution order.
+ entry.helper_attrs.sort_by_key(|(i, _)| *i);
+ self.helper_attrs
+ .insert(expn_id, entry.helper_attrs.iter().map(|(_, ident)| *ident).collect());
// Mark this derive as having `Copy` either if it has `Copy` itself or if its parent derive
// has `Copy`, to support cases like `#[derive(Clone, Copy)] #[derive(Debug)]`.
- if has_derive_copy || self.has_derive_copy(parent_scope.expansion) {
+ if entry.has_derive_copy || self.has_derive_copy(parent_scope.expansion) {
self.containers_deriving_copy.insert(expn_id);
}
+ assert!(self.derive_data.is_empty());
+ self.derive_data = derive_data;
Ok(())
}
- fn take_derive_resolutions(
- &mut self,
- expn_id: ExpnId,
- ) -> Option<Vec<(Lrc<SyntaxExtension>, ast::Path)>> {
- self.derive_resolutions.remove(&expn_id)
+ fn take_derive_resolutions(&mut self, expn_id: ExpnId) -> Option<DeriveResolutions> {
+ self.derive_data.remove(&expn_id).map(|data| data.resolutions)
}
// The function that implements the resolution logic of `#[cfg_accessible(path)]`.
}
}
ret.insert((sym::target_arch, Some(Symbol::intern(arch))));
+ if sess.target.is_like_wasm {
+ ret.insert((sym::wasm, None));
+ }
ret.insert((sym::target_endian, Some(Symbol::intern(end.as_str()))));
ret.insert((sym::target_pointer_width, Some(Symbol::intern(&wordsz))));
ret.insert((sym::target_env, Some(Symbol::intern(env))));
impl_dep_tracking_hash_via_hash!(PathBuf);
impl_dep_tracking_hash_via_hash!(lint::Level);
impl_dep_tracking_hash_via_hash!(Option<bool>);
+ impl_dep_tracking_hash_via_hash!(Option<u32>);
impl_dep_tracking_hash_via_hash!(Option<usize>);
impl_dep_tracking_hash_via_hash!(Option<NonZeroUsize>);
impl_dep_tracking_hash_via_hash!(Option<String>);
pub const parse_list: &str = "a space-separated list of strings";
pub const parse_opt_list: &str = parse_list;
pub const parse_opt_comma_list: &str = "a comma-separated list of strings";
- pub const parse_uint: &str = "a number";
- pub const parse_opt_uint: &str = parse_uint;
- pub const parse_threads: &str = parse_uint;
+ pub const parse_number: &str = "a number";
+ pub const parse_opt_number: &str = parse_number;
+ pub const parse_threads: &str = parse_number;
pub const parse_passes: &str = "a space-separated list of passes, or `all`";
pub const parse_panic_strategy: &str = "either `unwind` or `abort`";
pub const parse_relro_level: &str = "one of: `full`, `partial`, or `off`";
}
}
- /// Use this for any uint option that has a static default.
- fn parse_uint(slot: &mut usize, v: Option<&str>) -> bool {
+ /// Use this for any numeric option that has a static default.
+ fn parse_number<T: Copy + FromStr>(slot: &mut T, v: Option<&str>) -> bool {
match v.and_then(|s| s.parse().ok()) {
Some(i) => { *slot = i; true },
None => false
}
}
- /// Use this for any uint option that lacks a static default.
- fn parse_opt_uint(slot: &mut Option<usize>, v: Option<&str>) -> bool {
+ /// Use this for any numeric option that lacks a static default.
+ fn parse_opt_number<T: Copy + FromStr>(slot: &mut Option<T>, v: Option<&str>) -> bool {
match v {
Some(s) => { *slot = s.parse().ok(); slot.is_some() }
None => false
"this option is deprecated and does nothing"),
code_model: Option<CodeModel> = (None, parse_code_model, [TRACKED],
"choose the code model to use (`rustc --print code-models` for details)"),
- codegen_units: Option<usize> = (None, parse_opt_uint, [UNTRACKED],
+ codegen_units: Option<usize> = (None, parse_opt_number, [UNTRACKED],
"divide crate into N units to optimize in parallel"),
control_flow_guard: CFGuard = (CFGuard::Disabled, parse_cfguard, [TRACKED],
"use Windows Control Flow Guard (default: no)"),
debug_assertions: Option<bool> = (None, parse_opt_bool, [TRACKED],
"explicitly enable the `cfg(debug_assertions)` directive"),
- debuginfo: usize = (0, parse_uint, [TRACKED],
+ debuginfo: usize = (0, parse_number, [TRACKED],
"debug info emission level (0 = no debug info, 1 = line tables only, \
2 = full debug info with variable and type information; default: 0)"),
default_linker_libraries: bool = (false, parse_bool, [UNTRACKED],
"force use of unwind tables"),
incremental: Option<String> = (None, parse_opt_string, [UNTRACKED],
"enable incremental compilation"),
- inline_threshold: Option<usize> = (None, parse_opt_uint, [TRACKED],
+ inline_threshold: Option<u32> = (None, parse_opt_number, [TRACKED],
"set the threshold for inlining a function"),
link_arg: (/* redirected to link_args */) = ((), parse_string_push, [UNTRACKED],
"a single extra argument to append to the linker invocation (can be used several times)"),
"verify incr. comp. hashes of green query instances (default: no)"),
inline_mir: Option<bool> = (None, parse_opt_bool, [TRACKED],
"enable MIR inlining (default: no)"),
- inline_mir_threshold: Option<usize> = (None, parse_opt_uint, [TRACKED],
+ inline_mir_threshold: Option<usize> = (None, parse_opt_number, [TRACKED],
"a default MIR inlining threshold (default: 50)"),
- inline_mir_hint_threshold: Option<usize> = (None, parse_opt_uint, [TRACKED],
+ inline_mir_hint_threshold: Option<usize> = (None, parse_opt_number, [TRACKED],
"inlining threshold for functions with inline hint (default: 100)"),
inline_in_all_cgus: Option<bool> = (None, parse_opt_bool, [TRACKED],
"control whether `#[inline]` functions are in all CGUs"),
mir_emit_retag: bool = (false, parse_bool, [TRACKED],
"emit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0 \
(default: no)"),
- mir_opt_level: Option<usize> = (None, parse_opt_uint, [TRACKED],
+ mir_opt_level: Option<usize> = (None, parse_opt_number, [TRACKED],
"MIR optimization level (0-4; default: 1 in non optimized builds and 2 in optimized builds)"),
mutable_noalias: Option<bool> = (None, parse_opt_bool, [TRACKED],
"emit noalias metadata for mutable references (default: yes for LLVM >= 12, otherwise no)"),
"which mangling version to use for symbol names ('legacy' (default) or 'v0')"),
teach: bool = (false, parse_bool, [TRACKED],
"show extended diagnostic help (default: no)"),
- terminal_width: Option<usize> = (None, parse_opt_uint, [UNTRACKED],
+ terminal_width: Option<usize> = (None, parse_opt_number, [UNTRACKED],
"set the current terminal width"),
tune_cpu: Option<String> = (None, parse_opt_string, [TRACKED],
"select processor to schedule for (`rustc --print target-cpus` for details)"),
vreg,
vreg_low16,
warn,
+ wasm,
wasm_import_module,
wasm_target_feature,
while_let,
//
// [1]: https://bugs.llvm.org/show_bug.cgi?id=44316
if is_foreign
- && (tcx.sess.target.arch != "wasm32"
+ && (!tcx.sess.target.is_like_wasm
|| !tcx.wasm_import_module_map(def_id.krate).contains_key(&def_id))
{
if let Some(name) = attrs.link_name {
mod sparc64;
mod wasm32;
mod wasm32_bindgen_compat;
+mod wasm64;
mod x86;
mod x86_64;
mod x86_win64;
_ => wasm32_bindgen_compat::compute_abi_info(self),
},
"asmjs" => wasm32::compute_abi_info(cx, self),
+ "wasm64" => wasm64::compute_abi_info(cx, self),
a => return Err(format!("unrecognized arch \"{}\" in target specification", a)),
}
--- /dev/null
+use crate::abi::call::{ArgAbi, FnAbi, Uniform};
+use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
+
+fn unwrap_trivial_aggregate<'a, Ty, C>(cx: &C, val: &mut ArgAbi<'a, Ty>) -> bool
+where
+ Ty: TyAndLayoutMethods<'a, C> + Copy,
+ C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
+{
+ if val.layout.is_aggregate() {
+ if let Some(unit) = val.layout.homogeneous_aggregate(cx).ok().and_then(|ha| ha.unit()) {
+ let size = val.layout.size;
+ if unit.size == size {
+ val.cast_to(Uniform { unit, total: size });
+ return true;
+ }
+ }
+ }
+ false
+}
+
+fn classify_ret<'a, Ty, C>(cx: &C, ret: &mut ArgAbi<'a, Ty>)
+where
+ Ty: TyAndLayoutMethods<'a, C> + Copy,
+ C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
+{
+ ret.extend_integer_width_to(64);
+ if ret.layout.is_aggregate() && !unwrap_trivial_aggregate(cx, ret) {
+ ret.make_indirect();
+ }
+}
+
+fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>)
+where
+ Ty: TyAndLayoutMethods<'a, C> + Copy,
+ C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
+{
+ arg.extend_integer_width_to(64);
+ if arg.layout.is_aggregate() && !unwrap_trivial_aggregate(cx, arg) {
+ arg.make_indirect_byval();
+ }
+}
+
+pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
+where
+ Ty: TyAndLayoutMethods<'a, C> + Copy,
+ C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
+{
+ if !fn_abi.ret.is_ignore() {
+ classify_ret(cx, &mut fn_abi.ret);
+ }
+
+ for arg in &mut fn_abi.args {
+ if arg.is_ignore() {
+ continue;
+ }
+ classify_arg(cx, arg);
+ }
+}
_arch: InlineAsmArch,
has_feature: impl FnMut(&str) -> bool,
target: &Target,
- _allocating: bool,
) -> Result<(), &'static str> {
if !frame_pointer_is_r7(has_feature, target) {
Err("the frame pointer (r11) cannot be used as an operand for inline asm")
_arch: InlineAsmArch,
has_feature: impl FnMut(&str) -> bool,
target: &Target,
- _allocating: bool,
) -> Result<(), &'static str> {
if frame_pointer_is_r7(has_feature, target) {
Err("the frame pointer (r7) cannot be used as an operand for inline asm")
match name {
$(
$($alias)|* | $reg_name => {
- $($filter(_arch, &mut _has_feature, _target, false)?;)?
+ $($filter(_arch, &mut _has_feature, _target)?;)?
Ok(Self::$reg)
}
)*
#[allow(unused_imports)]
use super::{InlineAsmReg, InlineAsmRegClass};
$(
- if $($filter(_arch, &mut _has_feature, _target, true).is_ok() &&)? true {
+ if $($filter(_arch, &mut _has_feature, _target).is_ok() &&)? true {
if let Some(set) = _map.get_mut(&InlineAsmRegClass::$arch($arch_regclass::$class)) {
set.insert(InlineAsmReg::$arch($arch_reg::$reg));
}
_arch: InlineAsmArch,
mut has_feature: impl FnMut(&str) -> bool,
_target: &Target,
- _allocating: bool,
) -> Result<(), &'static str> {
if has_feature("e") {
Err("register can't be used with the `e` target feature")
arch: InlineAsmArch,
_has_feature: impl FnMut(&str) -> bool,
_target: &Target,
- _allocating: bool,
) -> Result<(), &'static str> {
match arch {
InlineAsmArch::X86 => Err("register is only available on x86_64"),
arch: InlineAsmArch,
_has_feature: impl FnMut(&str) -> bool,
_target: &Target,
- allocating: bool,
) -> Result<(), &'static str> {
match arch {
- InlineAsmArch::X86_64 if allocating => {
- // The error message isn't actually used...
- Err("high byte registers are not allocated by reg_byte")
- }
+ InlineAsmArch::X86_64 => Err("high byte registers cannot be used as an operand on x86_64"),
_ => Ok(()),
}
}
mod thumb_base;
mod uefi_msvc_base;
mod vxworks_base;
-mod wasm32_base;
+mod wasm_base;
mod windows_gnu_base;
mod windows_msvc_base;
mod windows_uwp_gnu_base;
("wasm32-unknown-emscripten", wasm32_unknown_emscripten),
("wasm32-unknown-unknown", wasm32_unknown_unknown),
("wasm32-wasi", wasm32_wasi),
+ ("wasm64-unknown-unknown", wasm64_unknown_unknown),
("thumbv6m-none-eabi", thumbv6m_none_eabi),
("thumbv7m-none-eabi", thumbv7m_none_eabi),
pub is_like_emscripten: bool,
/// Whether the target toolchain is like Fuchsia's.
pub is_like_fuchsia: bool,
+ /// Whether a target toolchain is like WASM.
+ pub is_like_wasm: bool,
/// Version of DWARF to use if not using the default.
/// Useful because some platforms (osx, bsd) only want up to DWARF2.
pub dwarf_version: Option<u32>,
is_like_emscripten: false,
is_like_msvc: false,
is_like_fuchsia: false,
+ is_like_wasm: false,
dwarf_version: None,
linker_is_gnu: false,
allows_weak_linkage: true,
key!(is_like_msvc, bool);
key!(is_like_emscripten, bool);
key!(is_like_fuchsia, bool);
+ key!(is_like_wasm, bool);
key!(dwarf_version, Option<u32>);
key!(linker_is_gnu, bool);
key!(allows_weak_linkage, bool);
target_option_val!(is_like_msvc);
target_option_val!(is_like_emscripten);
target_option_val!(is_like_fuchsia);
+ target_option_val!(is_like_wasm);
target_option_val!(dwarf_version);
target_option_val!(linker_is_gnu);
target_option_val!(allows_weak_linkage);
// and you certainly want "unknown" for the OS name.
fn can_use_os_unknown(&self) -> bool {
self.llvm_target == "wasm32-unknown-unknown"
+ || self.llvm_target == "wasm64-unknown-unknown"
|| (self.env == "sgx" && self.vendor == "fortanix")
}
}
+++ /dev/null
-use super::crt_objects::CrtObjectsFallback;
-use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, TargetOptions, TlsModel};
-use std::collections::BTreeMap;
-
-pub fn options() -> TargetOptions {
- let mut lld_args = Vec::new();
- let mut clang_args = Vec::new();
- let mut arg = |arg: &str| {
- lld_args.push(arg.to_string());
- clang_args.push(format!("-Wl,{}", arg));
- };
-
- // By default LLD only gives us one page of stack (64k) which is a
- // little small. Default to a larger stack closer to other PC platforms
- // (1MB) and users can always inject their own link-args to override this.
- arg("-z");
- arg("stack-size=1048576");
-
- // By default LLD's memory layout is:
- //
- // 1. First, a blank page
- // 2. Next, all static data
- // 3. Finally, the main stack (which grows down)
- //
- // This has the unfortunate consequence that on stack overflows you
- // corrupt static data and can cause some exceedingly weird bugs. To
- // help detect this a little sooner we instead request that the stack is
- // placed before static data.
- //
- // This means that we'll generate slightly larger binaries as references
- // to static data will take more bytes in the ULEB128 encoding, but
- // stack overflow will be guaranteed to trap as it underflows instead of
- // corrupting static data.
- arg("--stack-first");
-
- // FIXME we probably shouldn't pass this but instead pass an explicit list
- // of symbols we'll allow to be undefined. We don't currently have a
- // mechanism of knowing, however, which symbols are intended to be imported
- // from the environment and which are intended to be imported from other
- // objects linked elsewhere. This is a coarse approximation but is sure to
- // hide some bugs and frustrate someone at some point, so we should ideally
- // work towards a world where we can explicitly list symbols that are
- // supposed to be imported and have all other symbols generate errors if
- // they remain undefined.
- arg("--allow-undefined");
-
- // Rust code should never have warnings, and warnings are often
- // indicative of bugs, let's prevent them.
- arg("--fatal-warnings");
-
- // LLD only implements C++-like demangling, which doesn't match our own
- // mangling scheme. Tell LLD to not demangle anything and leave it up to
- // us to demangle these symbols later. Currently rustc does not perform
- // further demangling, but tools like twiggy and wasm-bindgen are intended
- // to do so.
- arg("--no-demangle");
-
- let mut pre_link_args = BTreeMap::new();
- pre_link_args.insert(LinkerFlavor::Lld(LldFlavor::Wasm), lld_args);
- pre_link_args.insert(LinkerFlavor::Gcc, clang_args);
-
- TargetOptions {
- // we allow dynamic linking, but only cdylibs. Basically we allow a
- // final library artifact that exports some symbols (a wasm module) but
- // we don't allow intermediate `dylib` crate types
- dynamic_linking: true,
- only_cdylib: true,
-
- // This means we'll just embed a `#[start]` function in the wasm module
- executables: true,
-
- // relatively self-explanatory!
- exe_suffix: ".wasm".to_string(),
- dll_prefix: String::new(),
- dll_suffix: ".wasm".to_string(),
- linker_is_gnu: false,
- eh_frame_header: false,
-
- max_atomic_width: Some(64),
-
- // Unwinding doesn't work right now, so the whole target unconditionally
- // defaults to panic=abort. Note that this is guaranteed to change in
- // the future once unwinding is implemented. Don't rely on this as we're
- // basically guaranteed to change it once WebAssembly supports
- // exceptions.
- panic_strategy: PanicStrategy::Abort,
-
- // Wasm doesn't have atomics yet, so tell LLVM that we're in a single
- // threaded model which will legalize atomics to normal operations.
- singlethread: true,
-
- // no dynamic linking, no need for default visibility!
- default_hidden_visibility: true,
-
- // Symbol visibility takes care of this for the WebAssembly.
- // Additionally the only known linker, LLD, doesn't support the script
- // arguments just yet
- limit_rdylib_exports: false,
-
- // we use the LLD shipped with the Rust toolchain by default
- linker: Some("rust-lld".to_owned()),
- lld_flavor: LldFlavor::Wasm,
-
- // No need for indirection here, simd types can always be passed by
- // value as the whole module either has simd or not, which is different
- // from x86 (for example) where programs can have functions that don't
- // enable simd features.
- simd_types_indirect: false,
-
- pre_link_args,
-
- crt_objects_fallback: Some(CrtObjectsFallback::Wasm),
-
- // This has no effect in LLVM 8 or prior, but in LLVM 9 and later when
- // PIC code is implemented this has quite a drastric effect if it stays
- // at the default, `pic`. In an effort to keep wasm binaries as minimal
- // as possible we're defaulting to `static` for now, but the hope is
- // that eventually we can ship a `pic`-compatible standard library which
- // works with `static` as well (or works with some method of generating
- // non-relative calls and such later on).
- relocation_model: RelocModel::Static,
-
- // When the atomics feature is activated then these two keys matter,
- // otherwise they're basically ignored by the standard library. In this
- // mode, however, the `#[thread_local]` attribute works (i.e.
- // `has_elf_tls`) and we need to get it to work by specifying
- // `local-exec` as that's all that's implemented in LLVM today for wasm.
- has_elf_tls: true,
- tls_model: TlsModel::LocalExec,
-
- // gdb scripts don't work on wasm blobs
- emit_debug_gdb_scripts: false,
-
- ..Default::default()
- }
-}
-use super::wasm32_base;
+use super::wasm_base;
use super::{LinkArgs, LinkerFlavor, PanicStrategy, Target, TargetOptions};
pub fn target() -> Target {
- let mut options = wasm32_base::options();
+ let mut options = wasm_base::options();
let clang_args = options.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
//! This target is more or less managed by the Rust and WebAssembly Working
//! Group nowadays at <https://github.com/rustwasm>.
-use super::wasm32_base;
+use super::wasm_base;
use super::{LinkerFlavor, LldFlavor, Target};
pub fn target() -> Target {
- let mut options = wasm32_base::options();
+ let mut options = wasm_base::options();
options.os = "unknown".to_string();
options.linker_flavor = LinkerFlavor::Lld(LldFlavor::Wasm);
let clang_args = options.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
//! best we can with this target. Don't start relying on too much here unless
//! you know what you're getting in to!
-use super::wasm32_base;
+use super::wasm_base;
use super::{crt_objects, LinkerFlavor, LldFlavor, Target};
pub fn target() -> Target {
- let mut options = wasm32_base::options();
+ let mut options = wasm_base::options();
options.os = "wasi".to_string();
options.linker_flavor = LinkerFlavor::Lld(LldFlavor::Wasm);
--- /dev/null
+//! A "bare wasm" target representing a WebAssembly output that makes zero
+//! assumptions about its environment.
+//!
+//! The `wasm64-unknown-unknown` target is intended to encapsulate use cases
+//! that do not rely on any imported functionality. The binaries generated are
+//! entirely self-contained by default when using the standard library. Although
+//! the standard library is available, most of it returns an error immediately
+//! (e.g. trying to create a TCP stream or something like that).
+
+use super::wasm_base;
+use super::{LinkerFlavor, LldFlavor, Target};
+
+pub fn target() -> Target {
+ let mut options = wasm_base::options();
+ options.os = "unknown".to_string();
+ options.linker_flavor = LinkerFlavor::Lld(LldFlavor::Wasm);
+ let clang_args = options.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
+
+ // Make sure clang uses LLD as its linker and is configured appropriately
+ // otherwise
+ clang_args.push("--target=wasm64-unknown-unknown".to_string());
+
+ // For now this target just never has an entry symbol no matter the output
+ // type, so unconditionally pass this.
+ clang_args.push("-Wl,--no-entry".to_string());
+ options
+ .pre_link_args
+ .get_mut(&LinkerFlavor::Lld(LldFlavor::Wasm))
+ .unwrap()
+ .push("--no-entry".to_string());
+
+ Target {
+ llvm_target: "wasm64-unknown-unknown".to_string(),
+ pointer_width: 64,
+ data_layout: "e-m:e-p:64:64-i64:64-n32:64-S128".to_string(),
+ arch: "wasm64".to_string(),
+ options,
+ }
+}
--- /dev/null
+use super::crt_objects::CrtObjectsFallback;
+use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, TargetOptions, TlsModel};
+use std::collections::BTreeMap;
+
+pub fn options() -> TargetOptions {
+ let mut lld_args = Vec::new();
+ let mut clang_args = Vec::new();
+ let mut arg = |arg: &str| {
+ lld_args.push(arg.to_string());
+ clang_args.push(format!("-Wl,{}", arg));
+ };
+
+ // By default LLD only gives us one page of stack (64k) which is a
+ // little small. Default to a larger stack closer to other PC platforms
+ // (1MB) and users can always inject their own link-args to override this.
+ arg("-z");
+ arg("stack-size=1048576");
+
+ // By default LLD's memory layout is:
+ //
+ // 1. First, a blank page
+ // 2. Next, all static data
+ // 3. Finally, the main stack (which grows down)
+ //
+ // This has the unfortunate consequence that on stack overflows you
+ // corrupt static data and can cause some exceedingly weird bugs. To
+ // help detect this a little sooner we instead request that the stack is
+ // placed before static data.
+ //
+ // This means that we'll generate slightly larger binaries as references
+ // to static data will take more bytes in the ULEB128 encoding, but
+ // stack overflow will be guaranteed to trap as it underflows instead of
+ // corrupting static data.
+ arg("--stack-first");
+
+ // FIXME we probably shouldn't pass this but instead pass an explicit list
+ // of symbols we'll allow to be undefined. We don't currently have a
+ // mechanism of knowing, however, which symbols are intended to be imported
+ // from the environment and which are intended to be imported from other
+ // objects linked elsewhere. This is a coarse approximation but is sure to
+ // hide some bugs and frustrate someone at some point, so we should ideally
+ // work towards a world where we can explicitly list symbols that are
+ // supposed to be imported and have all other symbols generate errors if
+ // they remain undefined.
+ arg("--allow-undefined");
+
+ // Rust code should never have warnings, and warnings are often
+ // indicative of bugs, let's prevent them.
+ arg("--fatal-warnings");
+
+ // LLD only implements C++-like demangling, which doesn't match our own
+ // mangling scheme. Tell LLD to not demangle anything and leave it up to
+ // us to demangle these symbols later. Currently rustc does not perform
+ // further demangling, but tools like twiggy and wasm-bindgen are intended
+ // to do so.
+ arg("--no-demangle");
+
+ let mut pre_link_args = BTreeMap::new();
+ pre_link_args.insert(LinkerFlavor::Lld(LldFlavor::Wasm), lld_args);
+ pre_link_args.insert(LinkerFlavor::Gcc, clang_args);
+
+ TargetOptions {
+ is_like_wasm: true,
+
+ // we allow dynamic linking, but only cdylibs. Basically we allow a
+ // final library artifact that exports some symbols (a wasm module) but
+ // we don't allow intermediate `dylib` crate types
+ dynamic_linking: true,
+ only_cdylib: true,
+
+ // This means we'll just embed a `#[start]` function in the wasm module
+ executables: true,
+
+ // relatively self-explanatory!
+ exe_suffix: ".wasm".to_string(),
+ dll_prefix: String::new(),
+ dll_suffix: ".wasm".to_string(),
+ linker_is_gnu: false,
+ eh_frame_header: false,
+
+ max_atomic_width: Some(64),
+
+ // Unwinding doesn't work right now, so the whole target unconditionally
+ // defaults to panic=abort. Note that this is guaranteed to change in
+ // the future once unwinding is implemented. Don't rely on this as we're
+ // basically guaranteed to change it once WebAssembly supports
+ // exceptions.
+ panic_strategy: PanicStrategy::Abort,
+
+ // Wasm doesn't have atomics yet, so tell LLVM that we're in a single
+ // threaded model which will legalize atomics to normal operations.
+ singlethread: true,
+
+ // no dynamic linking, no need for default visibility!
+ default_hidden_visibility: true,
+
+ // Symbol visibility takes care of this for the WebAssembly.
+ // Additionally the only known linker, LLD, doesn't support the script
+ // arguments just yet
+ limit_rdylib_exports: false,
+
+ // we use the LLD shipped with the Rust toolchain by default
+ linker: Some("rust-lld".to_owned()),
+ lld_flavor: LldFlavor::Wasm,
+
+ // No need for indirection here, simd types can always be passed by
+ // value as the whole module either has simd or not, which is different
+ // from x86 (for example) where programs can have functions that don't
+ // enable simd features.
+ simd_types_indirect: false,
+
+ pre_link_args,
+
+ crt_objects_fallback: Some(CrtObjectsFallback::Wasm),
+
+ // This has no effect in LLVM 8 or prior, but in LLVM 9 and later when
+ // PIC code is implemented this has quite a drastric effect if it stays
+ // at the default, `pic`. In an effort to keep wasm binaries as minimal
+ // as possible we're defaulting to `static` for now, but the hope is
+ // that eventually we can ship a `pic`-compatible standard library which
+ // works with `static` as well (or works with some method of generating
+ // non-relative calls and such later on).
+ relocation_model: RelocModel::Static,
+
+ // When the atomics feature is activated then these two keys matter,
+ // otherwise they're basically ignored by the standard library. In this
+ // mode, however, the `#[thread_local]` attribute works (i.e.
+ // `has_elf_tls`) and we need to get it to work by specifying
+ // `local-exec` as that's all that's implemented in LLVM today for wasm.
+ has_elf_tls: true,
+ tls_model: TlsModel::LocalExec,
+
+ // gdb scripts don't work on wasm blobs
+ emit_debug_gdb_scripts: false,
+
+ ..Default::default()
+ }
+}
unsatisfied_predicates: Vec<(ty::Predicate<'tcx>, Option<ty::Predicate<'tcx>>)>,
is_suggestion: IsSuggestion,
+
+ scope_expr_id: hir::HirId,
}
impl<'a, 'tcx> Deref for ProbeContext<'a, 'tcx> {
orig_values,
steps.steps,
is_suggestion,
+ scope_expr_id,
);
probe_cx.assemble_inherent_candidates();
orig_steps_var_values: OriginalQueryValues<'tcx>,
steps: Lrc<Vec<CandidateStep<'tcx>>>,
is_suggestion: IsSuggestion,
+ scope_expr_id: hir::HirId,
) -> ProbeContext<'a, 'tcx> {
ProbeContext {
fcx,
private_candidate: None,
unsatisfied_predicates: Vec::new(),
is_suggestion,
+ scope_expr_id,
}
}
) {
self.tcx.struct_span_lint_hir(
lint::builtin::UNSTABLE_NAME_COLLISIONS,
- self.fcx.body_id,
+ self.scope_expr_id,
self.span,
|lint| {
let def_kind = stable_pick.item.kind.as_def_kind();
self.orig_steps_var_values.clone(),
steps,
IsSuggestion(true),
+ self.scope_expr_id,
);
pcx.allow_similar_names = true;
pcx.assemble_inherent_candidates();
# Whether to download the stage 1 and 2 compilers from CI.
# This is mostly useful for tools; if you have changes to `compiler/` they will be ignored.
#
-# FIXME: currently, this also uses the downloaded compiler for stage0, but that causes unnecessary rebuilds.
+# You can set this to "if-unchanged" to only download if `compiler/` has not been modified.
+#
+# FIXME(#82739): currently, this also uses the downloaded compiler for stage0, but that causes unnecessary rebuilds.
#download-rustc = false
# Number of codegen units to use for each compiler invocation. A value of 0
#![feature(trusted_len)]
#![feature(unboxed_closures)]
#![feature(unicode_internals)]
-#![cfg_attr(bootstrap, feature(unsafe_block_in_unsafe_fn))]
#![feature(unsize)]
#![feature(unsized_fn_params)]
#![feature(allocator_internals)]
#![feature(alloc_layout_extra)]
#![feature(trusted_random_access)]
#![feature(try_trait)]
-#![cfg_attr(bootstrap, feature(type_alias_impl_trait))]
-#![cfg_attr(not(bootstrap), feature(min_type_alias_impl_trait))]
+#![feature(min_type_alias_impl_trait)]
#![feature(associated_type_bounds)]
#![feature(slice_group_by)]
#![feature(decl_macro)]
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_const_stable(feature = "const_unsafe_cell_new", since = "1.32.0")]
- #[inline]
+ #[inline(always)]
pub const fn new(value: T) -> UnsafeCell<T> {
UnsafeCell { value }
}
///
/// let five = uc.into_inner();
/// ```
- #[inline]
+ #[inline(always)]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_const_unstable(feature = "const_cell_into_inner", issue = "78729")]
pub const fn into_inner(self) -> T {
///
/// let five = uc.get();
/// ```
- #[inline]
+ #[inline(always)]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_const_stable(feature = "const_unsafecell_get", since = "1.32.0")]
pub const fn get(&self) -> *mut T {
///
/// assert_eq!(*c.get_mut(), 6);
/// ```
- #[inline]
+ #[inline(always)]
#[stable(feature = "unsafe_cell_get_mut", since = "1.50.0")]
pub fn get_mut(&mut self) -> &mut T {
&mut self.value
///
/// assert_eq!(uc.into_inner(), 5);
/// ```
- #[inline]
+ #[inline(always)]
#[unstable(feature = "unsafe_cell_raw_get", issue = "66358")]
pub const fn raw_get(this: *const Self) -> *mut T {
// We can just cast the pointer from `UnsafeCell<T>` to `T` because of
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
fn le(&self, other: &Rhs) -> bool {
- matches!(self.partial_cmp(other), Some(Less | Equal))
+ // Pattern `Some(Less | Eq)` optimizes worse than negating `None | Some(Greater)`.
+ !matches!(self.partial_cmp(other), None | Some(Greater))
}
/// This method tests greater than (for `self` and `other`) and is used by the `>` operator.
impl<T: ?Sized> Hash for *const T {
#[inline]
fn hash<H: Hasher>(&self, state: &mut H) {
- #[cfg(not(bootstrap))]
- {
- let (address, metadata) = self.to_raw_parts();
- state.write_usize(address as usize);
- metadata.hash(state);
- }
- #[cfg(bootstrap)]
- {
- if mem::size_of::<Self>() == mem::size_of::<usize>() {
- // Thin pointer
- state.write_usize(*self as *const () as usize);
- } else {
- // Fat pointer
- // SAFETY: we are accessing the memory occupied by `self`
- // which is guaranteed to be valid.
- // This assumes a fat pointer can be represented by a `(usize, usize)`,
- // which is safe to do in `std` because it is shipped and kept in sync
- // with the implementation of fat pointers in `rustc`.
- let (a, b) = unsafe { *(self as *const Self as *const (usize, usize)) };
- state.write_usize(a);
- state.write_usize(b);
- }
- }
+ let (address, metadata) = self.to_raw_parts();
+ state.write_usize(address as usize);
+ metadata.hash(state);
}
}
impl<T: ?Sized> Hash for *mut T {
#[inline]
fn hash<H: Hasher>(&self, state: &mut H) {
- #[cfg(not(bootstrap))]
- {
- let (address, metadata) = self.to_raw_parts();
- state.write_usize(address as usize);
- metadata.hash(state);
- }
- #[cfg(bootstrap)]
- {
- if mem::size_of::<Self>() == mem::size_of::<usize>() {
- // Thin pointer
- state.write_usize(*self as *const () as usize);
- } else {
- // Fat pointer
- // SAFETY: we are accessing the memory occupied by `self`
- // which is guaranteed to be valid.
- // This assumes a fat pointer can be represented by a `(usize, usize)`,
- // which is safe to do in `std` because it is shipped and kept in sync
- // with the implementation of fat pointers in `rustc`.
- let (a, b) = unsafe { *(self as *const Self as *const (usize, usize)) };
- state.write_usize(a);
- state.write_usize(b);
- }
- }
+ let (address, metadata) = self.to_raw_parts();
+ state.write_usize(address as usize);
+ metadata.hash(state);
}
}
}
#![feature(auto_traits)]
#![cfg_attr(bootstrap, feature(or_patterns))]
#![feature(prelude_import)]
-#![cfg_attr(not(bootstrap), feature(ptr_metadata))]
+#![feature(ptr_metadata)]
#![feature(repr_simd, platform_intrinsics)]
#![feature(rustc_attrs)]
#![feature(simd_ffi)]
#![feature(slice_ptr_get)]
#![feature(no_niche)] // rust-lang/rust#68303
#![feature(int_error_matching)]
-#![cfg_attr(bootstrap, feature(unsafe_block_in_unsafe_fn))]
#![deny(unsafe_op_in_unsafe_fn)]
#[prelude_import]
unused_imports,
unsafe_op_in_unsafe_fn
)]
-#[cfg_attr(bootstrap, allow(non_autolinks))]
-#[cfg_attr(not(bootstrap), allow(rustdoc::non_autolinks))]
+#[allow(rustdoc::non_autolinks)]
// FIXME: This annotation should be moved into rust-lang/stdarch after clashing_extern_declarations is
// merged. It currently cannot because bootstrap fails as the lint hasn't been defined yet.
#[allow(clashing_extern_declarations)]
}
/// Attribute macro used to apply derive macros.
- #[cfg(not(bootstrap))]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_builtin_macro]
pub macro derive($item:item) {
}
/// Expands all `#[cfg]` and `#[cfg_attr]` attributes in the code fragment it's applied to.
- #[cfg(not(bootstrap))]
#[unstable(
feature = "cfg_eval",
issue = "82679",
/// let ptr = uninit.as_mut_ptr();
///
/// // Initializing the `name` field
+/// // Using `write` instead of assignment via `=` to not call `drop` on the
+/// // old, uninitialized value.
/// unsafe { addr_of_mut!((*ptr).name).write("Bob".to_string()); }
///
/// // Initializing the `list` field
/// The resulting type after dereferencing.
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_diagnostic_item = "deref_target"]
- #[cfg_attr(not(bootstrap), lang = "deref_target")]
+ #[lang = "deref_target"]
type Target: ?Sized;
/// Dereferences the value.
bench, global_allocator, test, test_case, RustcDecodable, RustcEncodable,
};
-#[cfg(not(bootstrap))]
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[doc(no_inline)]
pub use crate::macros::builtin::derive;
#[doc(no_inline)]
pub use crate::macros::builtin::cfg_accessible;
-#[cfg(not(bootstrap))]
#[unstable(
feature = "cfg_eval",
issue = "82679",
/// Decompose a (possibly wide) pointer into is address and metadata components.
///
/// The pointer can be later reconstructed with [`from_raw_parts`].
- #[cfg(not(bootstrap))]
#[unstable(feature = "ptr_metadata", issue = "81513")]
#[rustc_const_unstable(feature = "ptr_metadata", issue = "81513")]
#[inline]
#[unstable(feature = "slice_ptr_len", issue = "71146")]
#[rustc_const_unstable(feature = "const_slice_ptr_len", issue = "71146")]
pub const fn len(self) -> usize {
- #[cfg(bootstrap)]
- {
- // SAFETY: this is safe because `*const [T]` and `FatPtr<T>` have the same layout.
- // Only `std` can make this guarantee.
- unsafe { Repr { rust: self }.raw }.len
- }
- #[cfg(not(bootstrap))]
metadata(self)
}
#[doc(inline)]
pub use crate::intrinsics::write_bytes;
-#[cfg(not(bootstrap))]
mod metadata;
-#[cfg(not(bootstrap))]
pub(crate) use metadata::PtrRepr;
-#[cfg(not(bootstrap))]
#[unstable(feature = "ptr_metadata", issue = "81513")]
pub use metadata::{from_raw_parts, from_raw_parts_mut, metadata, DynMetadata, Pointee, Thin};
0 as *mut T
}
-#[cfg(bootstrap)]
-#[repr(C)]
-pub(crate) union Repr<T> {
- pub(crate) rust: *const [T],
- rust_mut: *mut [T],
- pub(crate) raw: FatPtr<T>,
-}
-
-#[cfg(bootstrap)]
-#[repr(C)]
-pub(crate) struct FatPtr<T> {
- data: *const T,
- pub(crate) len: usize,
-}
-
-#[cfg(bootstrap)]
-// Manual impl needed to avoid `T: Clone` bound.
-impl<T> Clone for FatPtr<T> {
- fn clone(&self) -> Self {
- *self
- }
-}
-
-#[cfg(bootstrap)]
-// Manual impl needed to avoid `T: Copy` bound.
-impl<T> Copy for FatPtr<T> {}
-
/// Forms a raw slice from a pointer and a length.
///
/// The `len` argument is the number of **elements**, not the number of bytes.
#[stable(feature = "slice_from_raw_parts", since = "1.42.0")]
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
pub const fn slice_from_raw_parts<T>(data: *const T, len: usize) -> *const [T] {
- #[cfg(bootstrap)]
- {
- // SAFETY: Accessing the value from the `Repr` union is safe since *const [T]
- // and FatPtr have the same memory layouts. Only std can make this
- // guarantee.
- unsafe { Repr { raw: FatPtr { data, len } }.rust }
- }
- #[cfg(not(bootstrap))]
from_raw_parts(data.cast(), len)
}
#[stable(feature = "slice_from_raw_parts", since = "1.42.0")]
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T] {
- #[cfg(bootstrap)]
- {
- // SAFETY: Accessing the value from the `Repr` union is safe since *mut [T]
- // and FatPtr have the same memory layouts
- unsafe { Repr { raw: FatPtr { data, len } }.rust_mut }
- }
- #[cfg(not(bootstrap))]
from_raw_parts_mut(data.cast(), len)
}
#[inline]
#[rustc_const_unstable(feature = "const_swap", issue = "83163")]
pub(crate) const unsafe fn swap_nonoverlapping_one<T>(x: *mut T, y: *mut T) {
- // For types smaller than the block optimization below,
- // just swap directly to avoid pessimizing codegen.
- if mem::size_of::<T>() < 32 {
- // SAFETY: the caller must guarantee that `x` and `y` are valid
- // for writes, properly aligned, and non-overlapping.
- unsafe {
- let z = read(x);
- copy_nonoverlapping(y, x, 1);
- write(y, z);
+ // NOTE(eddyb) SPIR-V's Logical addressing model doesn't allow for arbitrary
+ // reinterpretation of values as (chunkable) byte arrays, and the loop in the
+ // block optimization in `swap_nonoverlapping_bytes` is hard to rewrite back
+ // into the (unoptimized) direct swapping implementation, so we disable it.
+ // FIXME(eddyb) the block optimization also prevents MIR optimizations from
+ // understanding `mem::replace`, `Option::take`, etc. - a better overall
+ // solution might be to make `swap_nonoverlapping` into an intrinsic, which
+ // a backend can choose to implement using the block optimization, or not.
+ #[cfg(not(target_arch = "spirv"))]
+ {
+ // Only apply the block optimization in `swap_nonoverlapping_bytes` for types
+ // at least as large as the block size, to avoid pessimizing codegen.
+ if mem::size_of::<T>() >= 32 {
+ // SAFETY: the caller must uphold the safety contract for `swap_nonoverlapping`.
+ unsafe { swap_nonoverlapping(x, y, 1) };
+ return;
}
- } else {
- // SAFETY: the caller must uphold the safety contract for `swap_nonoverlapping`.
- unsafe { swap_nonoverlapping(x, y, 1) };
+ }
+
+ // Direct swapping, for the cases not going through the block optimization.
+ // SAFETY: the caller must guarantee that `x` and `y` are valid
+ // for writes, properly aligned, and non-overlapping.
+ unsafe {
+ let z = read(x);
+ copy_nonoverlapping(y, x, 1);
+ write(y, z);
}
}
/// as all other references. This macro can create a raw pointer *without* creating
/// a reference first.
///
+/// Note, however, that the `expr` in `addr_of!(expr)` is still subject to all
+/// the usual rules. In particular, `addr_of!(*ptr::null())` is Undefined
+/// Behavior because it dereferences a NULL pointer.
+///
/// # Example
///
/// ```
/// let raw_f2 = ptr::addr_of!(packed.f2);
/// assert_eq!(unsafe { raw_f2.read_unaligned() }, 2);
/// ```
+///
+/// See [`addr_of_mut`] for how to create a pointer to unininitialized data.
+/// Doing that with `addr_of` would not make much sense since one could only
+/// read the data, and that would be Undefined Behavior.
#[stable(feature = "raw_ref_macros", since = "1.51.0")]
#[rustc_macro_transparency = "semitransparent"]
#[allow_internal_unstable(raw_ref_op)]
/// as all other references. This macro can create a raw pointer *without* creating
/// a reference first.
///
-/// # Example
+/// Note, however, that the `expr` in `addr_of_mut!(expr)` is still subject to all
+/// the usual rules. In particular, `addr_of_mut!(*ptr::null_mut())` is Undefined
+/// Behavior because it dereferences a NULL pointer.
+///
+/// # Examples
+///
+/// **Creating a pointer to unaligned data:**
///
/// ```
/// use std::ptr;
/// unsafe { raw_f2.write_unaligned(42); }
/// assert_eq!({packed.f2}, 42); // `{...}` forces copying the field instead of creating a reference.
/// ```
+///
+/// **Creating a pointer to uninitialized data:**
+///
+/// ```rust
+/// use std::{ptr, mem::MaybeUninit};
+///
+/// struct Demo {
+/// field: bool,
+/// }
+///
+/// let mut uninit = MaybeUninit::<Demo>::uninit();
+/// // `&uninit.as_mut().field` would create a reference to an uninitialized `bool`,
+/// // and thus be Undefined Behavior!
+/// let f1_ptr = unsafe { ptr::addr_of_mut!((*uninit.as_mut_ptr()).field) };
+/// unsafe { f1_ptr.write(true); }
+/// let init = unsafe { uninit.assume_init() };
+/// ```
#[stable(feature = "raw_ref_macros", since = "1.51.0")]
#[rustc_macro_transparency = "semitransparent"]
#[allow_internal_unstable(raw_ref_op)]
/// Decompose a (possibly wide) pointer into is address and metadata components.
///
/// The pointer can be later reconstructed with [`from_raw_parts_mut`].
- #[cfg(not(bootstrap))]
#[unstable(feature = "ptr_metadata", issue = "81513")]
#[rustc_const_unstable(feature = "ptr_metadata", issue = "81513")]
#[inline]
#[unstable(feature = "slice_ptr_len", issue = "71146")]
#[rustc_const_unstable(feature = "const_slice_ptr_len", issue = "71146")]
pub const fn len(self) -> usize {
- #[cfg(bootstrap)]
- {
- // SAFETY: this is safe because `*const [T]` and `FatPtr<T>` have the same layout.
- // Only `std` can make this guarantee.
- unsafe { Repr { rust_mut: self }.raw }.len
- }
- #[cfg(not(bootstrap))]
metadata(self)
}
/// See the documentation of [`std::ptr::from_raw_parts`] for more details.
///
/// [`std::ptr::from_raw_parts`]: crate::ptr::from_raw_parts
- #[cfg(not(bootstrap))]
#[unstable(feature = "ptr_metadata", issue = "81513")]
#[rustc_const_unstable(feature = "ptr_metadata", issue = "81513")]
#[inline]
/// Decompose a (possibly wide) pointer into is address and metadata components.
///
/// The pointer can be later reconstructed with [`NonNull::from_raw_parts`].
- #[cfg(not(bootstrap))]
#[unstable(feature = "ptr_metadata", issue = "81513")]
#[rustc_const_unstable(feature = "ptr_metadata", issue = "81513")]
#[inline]
// SAFETY: const sound because we transmute out the length field as a usize (which it must be)
#[rustc_allow_const_fn_unstable(const_fn_union)]
pub const fn len(&self) -> usize {
- #[cfg(bootstrap)]
- {
- // SAFETY: this is safe because `&[T]` and `FatPtr<T>` have the same layout.
- // Only `std` can make this guarantee.
- unsafe { crate::ptr::Repr { rust: self }.raw.len }
- }
- #[cfg(not(bootstrap))]
- {
- // FIXME: Replace with `crate::ptr::metadata(self)` when that is const-stable.
- // As of this writing this causes a "Const-stable functions can only call other
- // const-stable functions" error.
-
- // SAFETY: Accessing the value from the `PtrRepr` union is safe since *const T
- // and PtrComponents<T> have the same memory layouts. Only std can make this
- // guarantee.
- unsafe { crate::ptr::PtrRepr { const_ptr: self }.components.metadata }
- }
+ // FIXME: Replace with `crate::ptr::metadata(self)` when that is const-stable.
+ // As of this writing this causes a "Const-stable functions can only call other
+ // const-stable functions" error.
+
+ // SAFETY: Accessing the value from the `PtrRepr` union is safe since *const T
+ // and PtrComponents<T> have the same memory layouts. Only std can make this
+ // guarantee.
+ unsafe { crate::ptr::PtrRepr { const_ptr: self }.components.metadata }
}
/// Returns `true` if the slice has a length of 0.
// in crate `alloc`, and as such doesn't exists yet when building `core`.
// links to downstream crate: #74481. Since primitives are only documented in
// libstd (#73423), this never leads to broken links in practice.
- #[cfg_attr(not(bootstrap), allow(rustdoc::broken_intra_doc_links))]
- #[cfg_attr(bootstrap, allow(broken_intra_doc_links))]
+ #[allow(rustdoc::broken_intra_doc_links)]
#[stable(feature = "slice_binary_search_by_key", since = "1.10.0")]
#[inline]
pub fn binary_search_by_key<'a, B, F>(&'a self, b: &B, mut f: F) -> Result<usize, usize>
#![feature(option_result_unwrap_unchecked)]
#![feature(result_into_ok_or_err)]
#![feature(peekable_peek_mut)]
-#![cfg_attr(not(bootstrap), feature(ptr_metadata))]
+#![feature(ptr_metadata)]
#![feature(once_cell)]
#![feature(unsized_tuple_coercion)]
#![feature(nonzero_leading_trailing_zeros)]
#![feature(integer_atomics)]
#![feature(slice_group_by)]
#![feature(trusted_random_access)]
-#![cfg_attr(bootstrap, feature(unsafe_block_in_unsafe_fn))]
-#![cfg_attr(not(bootstrap), feature(unsize))]
+#![feature(unsize)]
#![deny(unsafe_op_in_unsafe_fn)]
extern crate test;
use core::cell::RefCell;
-#[cfg(not(bootstrap))]
use core::ptr;
use core::ptr::*;
-#[cfg(not(bootstrap))]
use std::fmt::{Debug, Display};
#[test]
}
#[test]
-#[cfg(not(bootstrap))]
fn ptr_metadata() {
struct Unit;
struct Pair<A, B: ?Sized>(A, B);
}
#[test]
-#[cfg(not(bootstrap))]
fn ptr_metadata_bounds() {
fn metadata_eq_method_address<T: ?Sized>() -> usize {
// The `Metadata` associated type has an `Ord` bound, so this is valid:
}
#[test]
-#[cfg(not(bootstrap))]
fn dyn_metadata() {
#[derive(Debug)]
#[repr(align(32))]
}
#[test]
-#[cfg(not(bootstrap))]
fn from_raw_parts() {
let mut value = 5_u32;
let address = &mut value as *mut _ as *mut ();
}
#[test]
-#[cfg(not(bootstrap))]
fn thin_box() {
let foo = ThinBox::<dyn Display>::new(4);
assert_eq!(foo.to_string(), "4");
#![feature(box_syntax)]
#![feature(c_variadic)]
#![feature(cfg_accessible)]
-#![cfg_attr(not(bootstrap), feature(cfg_eval))]
+#![feature(cfg_eval)]
#![feature(cfg_target_has_atomic)]
#![feature(cfg_target_thread_local)]
#![feature(char_error_internals)]
#![feature(intra_doc_pointers)]
#![feature(iter_zip)]
#![feature(lang_items)]
-#![feature(link_args)]
#![feature(linkage)]
#![feature(llvm_asm)]
#![feature(log_syntax)]
#![feature(try_blocks)]
#![feature(try_reserve)]
#![feature(unboxed_closures)]
-#![cfg_attr(bootstrap, feature(unsafe_block_in_unsafe_fn))]
#![feature(unsafe_cell_raw_get)]
#![feature(unwind_attributes)]
#![feature(vec_into_raw_parts)]
}
impl IntoInner<c::in_addr> for Ipv4Addr {
+ #[inline]
fn into_inner(self) -> c::in_addr {
self.inner
}
}
impl AsInner<c::in6_addr> for Ipv6Addr {
+ #[inline]
fn as_inner(&self) -> &c::in6_addr {
&self.inner
}
}
impl FromInner<c::in6_addr> for Ipv6Addr {
+ #[inline]
fn from_inner(addr: c::in6_addr) -> Ipv6Addr {
Ipv6Addr { inner: addr }
}
bench, global_allocator, test, test_case, RustcDecodable, RustcEncodable,
};
-#[cfg(not(bootstrap))]
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[doc(hidden)]
pub use core::prelude::v1::derive;
#[doc(hidden)]
pub use core::prelude::v1::cfg_accessible;
-#[cfg(not(bootstrap))]
#[unstable(
feature = "cfg_eval",
issue = "82679",
self.nix_deps_dir = None
self.rustc_commit = None
- def download_stage0(self):
+ def download_toolchain(self, stage0=True, rustc_channel=None):
"""Fetch the build system for Rust, written in Rust
This method will build a cache directory, then it will fetch the
Each downloaded tarball is extracted, after that, the script
will move all the content to the right place.
"""
- rustc_channel = self.rustc_channel
+ if rustc_channel is None:
+ rustc_channel = self.rustc_channel
rustfmt_channel = self.rustfmt_channel
-
- if self.rustc().startswith(self.bin_root()) and \
- (not os.path.exists(self.rustc()) or
- self.program_out_of_date(self.rustc_stamp(), self.date + str(self.rustc_commit))):
- if os.path.exists(self.bin_root()):
- shutil.rmtree(self.bin_root())
- download_rustc = self.rustc_commit is not None
+ bin_root = self.bin_root(stage0)
+
+ key = self.date
+ if not stage0:
+ key += str(self.rustc_commit)
+ if self.rustc(stage0).startswith(bin_root) and \
+ (not os.path.exists(self.rustc(stage0)) or
+ self.program_out_of_date(self.rustc_stamp(stage0), key)):
+ if os.path.exists(bin_root):
+ shutil.rmtree(bin_root)
tarball_suffix = '.tar.xz' if support_xz() else '.tar.gz'
filename = "rust-std-{}-{}{}".format(
rustc_channel, self.build, tarball_suffix)
pattern = "rust-std-{}".format(self.build)
- self._download_component_helper(filename, pattern, tarball_suffix, download_rustc)
+ self._download_component_helper(filename, pattern, tarball_suffix, stage0)
filename = "rustc-{}-{}{}".format(rustc_channel, self.build,
tarball_suffix)
- self._download_component_helper(filename, "rustc", tarball_suffix, download_rustc)
+ self._download_component_helper(filename, "rustc", tarball_suffix, stage0)
filename = "cargo-{}-{}{}".format(rustc_channel, self.build,
tarball_suffix)
self._download_component_helper(filename, "cargo", tarball_suffix)
- if self.rustc_commit is not None:
+ if not stage0:
filename = "rustc-dev-{}-{}{}".format(rustc_channel, self.build, tarball_suffix)
self._download_component_helper(
- filename, "rustc-dev", tarball_suffix, download_rustc
+ filename, "rustc-dev", tarball_suffix, stage0
)
- self.fix_bin_or_dylib("{}/bin/rustc".format(self.bin_root()))
- self.fix_bin_or_dylib("{}/bin/rustdoc".format(self.bin_root()))
- self.fix_bin_or_dylib("{}/bin/cargo".format(self.bin_root()))
- lib_dir = "{}/lib".format(self.bin_root())
+ self.fix_bin_or_dylib("{}/bin/rustc".format(bin_root))
+ self.fix_bin_or_dylib("{}/bin/rustdoc".format(bin_root))
+ self.fix_bin_or_dylib("{}/bin/cargo".format(bin_root))
+ lib_dir = "{}/lib".format(bin_root)
for lib in os.listdir(lib_dir):
if lib.endswith(".so"):
self.fix_bin_or_dylib(os.path.join(lib_dir, lib), rpath_libz=True)
- with output(self.rustc_stamp()) as rust_stamp:
- rust_stamp.write(self.date + str(self.rustc_commit))
+ with output(self.rustc_stamp(stage0)) as rust_stamp:
+ rust_stamp.write(key)
- if self.rustfmt() and self.rustfmt().startswith(self.bin_root()) and (
+ if self.rustfmt() and self.rustfmt().startswith(bin_root) and (
not os.path.exists(self.rustfmt())
or self.program_out_of_date(self.rustfmt_stamp(), self.rustfmt_channel)
):
self._download_component_helper(
filename, "rustfmt-preview", tarball_suffix, key=date
)
- self.fix_bin_or_dylib("{}/bin/rustfmt".format(self.bin_root()))
- self.fix_bin_or_dylib("{}/bin/cargo-fmt".format(self.bin_root()))
+ self.fix_bin_or_dylib("{}/bin/rustfmt".format(bin_root))
+ self.fix_bin_or_dylib("{}/bin/cargo-fmt".format(bin_root))
with output(self.rustfmt_stamp()) as rustfmt_stamp:
rustfmt_stamp.write(self.rustfmt_channel)
- if self.downloading_llvm():
+ # Avoid downloading LLVM twice (once for stage0 and once for the master rustc)
+ if self.downloading_llvm() and stage0:
# We want the most recent LLVM submodule update to avoid downloading
# LLVM more often than necessary.
#
or (opt == "if-available" and self.build in supported_platforms)
def _download_component_helper(
- self, filename, pattern, tarball_suffix, download_rustc=False, key=None
+ self, filename, pattern, tarball_suffix, stage0=True, key=None
):
if key is None:
- if download_rustc:
- key = self.rustc_commit
- else:
+ if stage0:
key = self.date
+ else:
+ key = self.rustc_commit
cache_dst = os.path.join(self.build_dir, "cache")
rustc_cache = os.path.join(cache_dst, key)
if not os.path.exists(rustc_cache):
os.makedirs(rustc_cache)
- if download_rustc:
- url = "https://ci-artifacts.rust-lang.org/rustc-builds/{}".format(self.rustc_commit)
- else:
+ if stage0:
url = "{}/dist/{}".format(self._download_url, key)
+ else:
+ url = "https://ci-artifacts.rust-lang.org/rustc-builds/{}".format(self.rustc_commit)
tarball = os.path.join(rustc_cache, filename)
if not os.path.exists(tarball):
- do_verify = not download_rustc
- get("{}/{}".format(url, filename), tarball, verbose=self.verbose, do_verify=do_verify)
- unpack(tarball, tarball_suffix, self.bin_root(), match=pattern, verbose=self.verbose)
+ get("{}/{}".format(url, filename), tarball, verbose=self.verbose, do_verify=stage0)
+ unpack(tarball, tarball_suffix, self.bin_root(stage0), match=pattern, verbose=self.verbose)
def _download_ci_llvm(self, llvm_sha, llvm_assertions):
cache_prefix = "llvm-{}-{}".format(llvm_sha, llvm_assertions)
nix_os_msg = "info: you seem to be running NixOS. Attempting to patch"
print(nix_os_msg, fname)
- # Only build `stage0/.nix-deps` once.
+ # Only build `.nix-deps` once.
nix_deps_dir = self.nix_deps_dir
if not nix_deps_dir:
- nix_deps_dir = "{}/.nix-deps".format(self.bin_root())
+ nix_deps_dir = ".nix-deps"
if not os.path.exists(nix_deps_dir):
os.makedirs(nix_deps_dir)
print("warning: failed to call patchelf:", reason)
return
- # Return the stage1 compiler to download, if any.
- def maybe_download_rustc(self):
+ # If `download-rustc` is set, download the most recent commit with CI artifacts
+ def maybe_download_ci_toolchain(self):
# If `download-rustc` is not set, default to rebuilding.
- if self.get_toml("download-rustc", section="rust") != "true":
+ download_rustc = self.get_toml("download-rustc", section="rust")
+ if download_rustc is None or download_rustc == "false":
return None
+ assert download_rustc == "true" or download_rustc == "if-unchanged", download_rustc
# Handle running from a directory other than the top level
rev_parse = ["git", "rev-parse", "--show-toplevel"]
# Warn if there were changes to the compiler since the ancestor commit.
status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler])
if status != 0:
+ if download_rustc == "if-unchanged":
+ return None
print("warning: `download-rustc` is enabled, but there are changes to compiler/")
- return commit
+ if self.verbose:
+ print("using downloaded stage1 artifacts from CI (commit {})".format(commit))
+ self.rustc_commit = commit
+ # FIXME: support downloading artifacts from the beta channel
+ self.download_toolchain(False, "nightly")
- def rustc_stamp(self):
- """Return the path for .rustc-stamp
+ def rustc_stamp(self, stage0):
+ """Return the path for .rustc-stamp at the given stage
>>> rb = RustBuild()
>>> rb.build_dir = "build"
- >>> rb.rustc_stamp() == os.path.join("build", "stage0", ".rustc-stamp")
+ >>> rb.rustc_stamp(True) == os.path.join("build", "stage0", ".rustc-stamp")
+ True
+ >>> rb.rustc_stamp(False) == os.path.join("build", "ci-rustc", ".rustc-stamp")
True
"""
- return os.path.join(self.bin_root(), '.rustc-stamp')
+ return os.path.join(self.bin_root(stage0), '.rustc-stamp')
def rustfmt_stamp(self):
"""Return the path for .rustfmt-stamp
>>> rb.rustfmt_stamp() == os.path.join("build", "stage0", ".rustfmt-stamp")
True
"""
- return os.path.join(self.bin_root(), '.rustfmt-stamp')
+ return os.path.join(self.bin_root(True), '.rustfmt-stamp')
def llvm_stamp(self):
"""Return the path for .rustfmt-stamp
with open(stamp_path, 'r') as stamp:
return key != stamp.read()
- def bin_root(self):
- """Return the binary root directory
+ def bin_root(self, stage0):
+ """Return the binary root directory for the given stage
>>> rb = RustBuild()
>>> rb.build_dir = "build"
- >>> rb.bin_root() == os.path.join("build", "stage0")
+ >>> rb.bin_root(True) == os.path.join("build", "stage0")
+ True
+ >>> rb.bin_root(False) == os.path.join("build", "ci-rustc")
True
When the 'build' property is given should be a nested directory:
>>> rb.build = "devel"
- >>> rb.bin_root() == os.path.join("build", "devel", "stage0")
+ >>> rb.bin_root(True) == os.path.join("build", "devel", "stage0")
True
"""
- return os.path.join(self.build_dir, self.build, "stage0")
+ if stage0:
+ subdir = "stage0"
+ else:
+ subdir = "ci-rustc"
+ return os.path.join(self.build_dir, self.build, subdir)
def llvm_root(self):
"""Return the CI LLVM root directory
"""Return config path for cargo"""
return self.program_config('cargo')
- def rustc(self):
+ def rustc(self, stage0):
"""Return config path for rustc"""
- return self.program_config('rustc')
+ return self.program_config('rustc', stage0)
def rustfmt(self):
"""Return config path for rustfmt"""
return None
return self.program_config('rustfmt')
- def program_config(self, program):
- """Return config path for the given program
+ def program_config(self, program, stage0=True):
+ """Return config path for the given program at the given stage
>>> rb = RustBuild()
>>> rb.config_toml = 'rustc = "rustc"\\n'
>>> rb.program_config('rustc')
'rustc'
>>> rb.config_toml = ''
- >>> cargo_path = rb.program_config('cargo')
- >>> cargo_path.rstrip(".exe") == os.path.join(rb.bin_root(),
+ >>> cargo_path = rb.program_config('cargo', True)
+ >>> cargo_path.rstrip(".exe") == os.path.join(rb.bin_root(True),
+ ... "bin", "cargo")
+ True
+ >>> cargo_path = rb.program_config('cargo', False)
+ >>> cargo_path.rstrip(".exe") == os.path.join(rb.bin_root(False),
... "bin", "cargo")
True
"""
config = self.get_toml(program)
if config:
return os.path.expanduser(config)
- return os.path.join(self.bin_root(), "bin", "{}{}".format(
+ return os.path.join(self.bin_root(stage0), "bin", "{}{}".format(
program, self.exe_suffix()))
@staticmethod
if "CARGO_BUILD_TARGET" in env:
del env["CARGO_BUILD_TARGET"]
env["CARGO_TARGET_DIR"] = build_dir
- env["RUSTC"] = self.rustc()
- env["LD_LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+ env["RUSTC"] = self.rustc(True)
+ env["LD_LIBRARY_PATH"] = os.path.join(self.bin_root(True), "lib") + \
(os.pathsep + env["LD_LIBRARY_PATH"]) \
if "LD_LIBRARY_PATH" in env else ""
- env["DYLD_LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+ env["DYLD_LIBRARY_PATH"] = os.path.join(self.bin_root(True), "lib") + \
(os.pathsep + env["DYLD_LIBRARY_PATH"]) \
if "DYLD_LIBRARY_PATH" in env else ""
- env["LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+ env["LIBRARY_PATH"] = os.path.join(self.bin_root(True), "lib") + \
(os.pathsep + env["LIBRARY_PATH"]) \
if "LIBRARY_PATH" in env else ""
# preserve existing RUSTFLAGS
if self.get_toml("deny-warnings", "rust") != "false":
env["RUSTFLAGS"] += " -Dwarnings"
- env["PATH"] = os.path.join(self.bin_root(), "bin") + \
+ env["PATH"] = os.path.join(self.bin_root(True), "bin") + \
os.pathsep + env["PATH"]
if not os.path.isfile(self.cargo()):
raise Exception("no cargo executable found at `{}`".format(
build.update_submodules()
# Fetch/build the bootstrap
- build.rustc_commit = build.maybe_download_rustc()
- if build.rustc_commit is not None:
- if build.verbose:
- commit = build.rustc_commit
- print("using downloaded stage1 artifacts from CI (commit {})".format(commit))
- # FIXME: support downloading artifacts from the beta channel
- build.rustc_channel = "nightly"
- build.download_stage0()
+ build.download_toolchain()
+ # Download the master compiler if `download-rustc` is set
+ build.maybe_download_ci_toolchain()
sys.stdout.flush()
build.ensure_vendored()
build.build_bootstrap()
env["RUSTC_BOOTSTRAP"] = '1'
if toml_path:
env["BOOTSTRAP_CONFIG"] = toml_path
+ if build.rustc_commit is not None:
+ env["BOOTSTRAP_DOWNLOAD_RUSTC"] = '1'
run(args, env=env, verbose=build.verbose)
.env("RUSTDOC_REAL", self.rustdoc(compiler))
.env("RUSTC_BOOTSTRAP", "1");
- // cfg(bootstrap), can be removed on the next beta bump
- if compiler.stage == 0 {
- cmd.arg("-Winvalid_codeblock_attributes");
- } else {
- cmd.arg("-Wrustdoc::invalid_codeblock_attributes");
- }
+ cmd.arg("-Wrustdoc::invalid_codeblock_attributes");
if self.config.deny_warnings {
cmd.arg("-Dwarnings");
// fixed via better support from Cargo.
cargo.env("RUSTC_LINT_FLAGS", lint_flags.join(" "));
- // cfg(bootstrap), can be removed on the next beta bump
- if compiler.stage == 0 {
- rustdocflags.arg("-Winvalid_codeblock_attributes");
- } else {
- rustdocflags.arg("-Wrustdoc::invalid_codeblock_attributes");
- }
+ rustdocflags.arg("-Wrustdoc::invalid_codeblock_attributes");
}
if mode == Mode::Rustc {
// These artifacts were already copied (in `impl Step for Sysroot`).
// Don't recompile them.
- if builder.config.download_rustc {
+ // NOTE: the ABI of the beta compiler is different from the ABI of the downloaded compiler,
+ // so its artifacts can't be reused.
+ if builder.config.download_rustc && compiler.stage != 0 {
return;
}
let compiler = self.compiler;
let target = self.target;
- if builder.config.download_rustc {
+ // NOTE: the ABI of the beta compiler is different from the ABI of the downloaded compiler,
+ // so its artifacts can't be reused.
+ if builder.config.download_rustc && compiler.stage != 0 {
// Copy the existing artifacts instead of rebuilding them.
// NOTE: this path is only taken for tools linking to rustc-dev.
builder.ensure(Sysroot { compiler });
t!(fs::create_dir_all(&sysroot));
// If we're downloading a compiler from CI, we can use the same compiler for all stages other than 0.
- if builder.config.download_rustc {
+ if builder.config.download_rustc && compiler.stage != 0 {
assert_eq!(
builder.config.build, compiler.host,
"Cross-compiling is not yet supported with `download-rustc`",
);
// Copy the compiler into the correct sysroot.
- let stage0_dir = builder.config.out.join(&*builder.config.build.triple).join("stage0");
- builder.cp_r(&stage0_dir, &sysroot);
+ let ci_rustc_dir =
+ builder.config.out.join(&*builder.config.build.triple).join("ci-rustc");
+ builder.cp_r(&ci_rustc_dir, &sysroot);
return INTERNER.intern_path(sysroot);
}
new_symbol_mangling: Option<bool>,
profile_generate: Option<String>,
profile_use: Option<String>,
- download_rustc: Option<bool>,
+ // ignored; this is set from an env var set by bootstrap.py
+ download_rustc: Option<StringOrBool>,
}
/// TOML representation of how each build target is configured.
set(&mut config.print_step_timings, build.print_step_timings);
set(&mut config.print_step_rusage, build.print_step_rusage);
- // See https://github.com/rust-lang/compiler-team/issues/326
- config.stage = match config.cmd {
- Subcommand::Check { .. } => flags.stage.or(build.check_stage).unwrap_or(0),
- Subcommand::Doc { .. } => flags.stage.or(build.doc_stage).unwrap_or(0),
- Subcommand::Build { .. } => flags.stage.or(build.build_stage).unwrap_or(1),
- Subcommand::Test { .. } => flags.stage.or(build.test_stage).unwrap_or(1),
- Subcommand::Bench { .. } => flags.stage.or(build.bench_stage).unwrap_or(2),
- Subcommand::Dist { .. } => flags.stage.or(build.dist_stage).unwrap_or(2),
- Subcommand::Install { .. } => flags.stage.or(build.install_stage).unwrap_or(2),
- // These are all bootstrap tools, which don't depend on the compiler.
- // The stage we pass shouldn't matter, but use 0 just in case.
- Subcommand::Clean { .. }
- | Subcommand::Clippy { .. }
- | Subcommand::Fix { .. }
- | Subcommand::Run { .. }
- | Subcommand::Setup { .. }
- | Subcommand::Format { .. } => flags.stage.unwrap_or(0),
- };
-
- // CI should always run stage 2 builds, unless it specifically states otherwise
- #[cfg(not(test))]
- if flags.stage.is_none() && crate::CiEnv::current() != crate::CiEnv::None {
- match config.cmd {
- Subcommand::Test { .. }
- | Subcommand::Doc { .. }
- | Subcommand::Build { .. }
- | Subcommand::Bench { .. }
- | Subcommand::Dist { .. }
- | Subcommand::Install { .. } => {
- assert_eq!(
- config.stage, 2,
- "x.py should be run with `--stage 2` on CI, but was run with `--stage {}`",
- config.stage,
- );
- }
- Subcommand::Clean { .. }
- | Subcommand::Check { .. }
- | Subcommand::Clippy { .. }
- | Subcommand::Fix { .. }
- | Subcommand::Run { .. }
- | Subcommand::Setup { .. }
- | Subcommand::Format { .. } => {}
- }
- }
-
config.verbose = cmp::max(config.verbose, flags.verbose);
if let Some(install) = toml.install {
config.rust_codegen_units_std = rust.codegen_units_std.map(threads_from_config);
config.rust_profile_use = flags.rust_profile_use.or(rust.profile_use);
config.rust_profile_generate = flags.rust_profile_generate.or(rust.profile_generate);
- config.download_rustc = rust.download_rustc.unwrap_or(false);
+ config.download_rustc = env::var("BOOTSTRAP_DOWNLOAD_RUSTC").as_deref() == Ok("1");
} else {
config.rust_profile_use = flags.rust_profile_use;
config.rust_profile_generate = flags.rust_profile_generate;
let default = config.channel == "dev";
config.ignore_git = ignore_git.unwrap_or(default);
+ let download_rustc = config.download_rustc;
+ // See https://github.com/rust-lang/compiler-team/issues/326
+ config.stage = match config.cmd {
+ Subcommand::Check { .. } => flags.stage.or(build.check_stage).unwrap_or(0),
+ // `download-rustc` only has a speed-up for stage2 builds. Default to stage2 unless explicitly overridden.
+ Subcommand::Doc { .. } => {
+ flags.stage.or(build.doc_stage).unwrap_or(if download_rustc { 2 } else { 0 })
+ }
+ Subcommand::Build { .. } => {
+ flags.stage.or(build.build_stage).unwrap_or(if download_rustc { 2 } else { 1 })
+ }
+ Subcommand::Test { .. } => {
+ flags.stage.or(build.test_stage).unwrap_or(if download_rustc { 2 } else { 1 })
+ }
+ Subcommand::Bench { .. } => flags.stage.or(build.bench_stage).unwrap_or(2),
+ Subcommand::Dist { .. } => flags.stage.or(build.dist_stage).unwrap_or(2),
+ Subcommand::Install { .. } => flags.stage.or(build.install_stage).unwrap_or(2),
+ // These are all bootstrap tools, which don't depend on the compiler.
+ // The stage we pass shouldn't matter, but use 0 just in case.
+ Subcommand::Clean { .. }
+ | Subcommand::Clippy { .. }
+ | Subcommand::Fix { .. }
+ | Subcommand::Run { .. }
+ | Subcommand::Setup { .. }
+ | Subcommand::Format { .. } => flags.stage.unwrap_or(0),
+ };
+
+ // CI should always run stage 2 builds, unless it specifically states otherwise
+ #[cfg(not(test))]
+ if flags.stage.is_none() && crate::CiEnv::current() != crate::CiEnv::None {
+ match config.cmd {
+ Subcommand::Test { .. }
+ | Subcommand::Doc { .. }
+ | Subcommand::Build { .. }
+ | Subcommand::Bench { .. }
+ | Subcommand::Dist { .. }
+ | Subcommand::Install { .. } => {
+ assert_eq!(
+ config.stage, 2,
+ "x.py should be run with `--stage 2` on CI, but was run with `--stage {}`",
+ config.stage,
+ );
+ }
+ Subcommand::Clean { .. }
+ | Subcommand::Check { .. }
+ | Subcommand::Clippy { .. }
+ | Subcommand::Fix { .. }
+ | Subcommand::Run { .. }
+ | Subcommand::Setup { .. }
+ | Subcommand::Format { .. } => {}
+ }
+ }
+
config
}
// create correct links between crates because rustdoc depends on the
// existence of the output directories to know if it should be a local
// or remote link.
- let krates = ["core", "alloc", "std", "proc_macro", "test"];
+ //
+ // There's also a mild hack here where we build the first crate in this
+ // list, core, twice. This is currently necessary to make sure that
+ // cargo's cached rustc/rustdoc versions are up to date which means
+ // cargo won't delete the out_dir we create for the stampfile.
+ // Essentially any crate could go into the first slot here as it's
+ // output directory will be deleted by us (as cargo will purge the stamp
+ // file during the first slot's run), and core is relatively fast to
+ // build so works OK to fill this 'dummy' slot.
+ let krates = ["core", "core", "alloc", "std", "proc_macro", "test"];
for krate in &krates {
run_cargo_rustdoc_for(krate);
}
// rustc compiler it's paired with, so it must be built with the previous stage compiler.
let build_compiler = builder.compiler(target_compiler.stage - 1, builder.config.build);
+ // When using `download-rustc` and a stage0 build_compiler, copying rustc doesn't actually
+ // build stage0 libstd (because the libstd in sysroot has the wrong ABI). Explicitly build
+ // it.
+ builder.ensure(compile::Std { compiler: build_compiler, target: target_compiler.host });
+ builder.ensure(compile::Rustc { compiler: build_compiler, target: target_compiler.host });
+ // NOTE: this implies that `download-rustc` is pretty useless when compiling with the stage0
+ // compiler, since you do just as much work.
+ if !builder.config.dry_run && builder.config.download_rustc && build_compiler.stage == 0 {
+ println!(
+ "warning: `download-rustc` does nothing when building stage1 tools; consider using `--stage 2` instead"
+ );
+ }
+
// The presence of `target_compiler` ensures that the necessary libraries (codegen backends,
// compiler libraries, ...) are built. Rustdoc does not require the presence of any
// libraries within sysroot_libdir (i.e., rustlib), though doctests may want it (since
`thumbv7a-uwp-windows-msvc` | ✓ | |
`thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7a Linux with NEON, MUSL
`thumbv4t-none-eabi` | * | | ARMv4T T32
+`wasm64-unknown-unknown` | * | | WebAssembly
`x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst on x86_64
`x86_64-apple-tvos` | * | | x86 64-bit tvOS
`x86_64-unknown-none-linuxkernel` | * | | Linux kernel modules
+++ /dev/null
-# `link_args`
-
-The tracking issue for this feature is: [#29596]
-
-[#29596]: https://github.com/rust-lang/rust/issues/29596
-
-------------------------
-
-You can tell `rustc` how to customize linking, and that is via the `link_args`
-attribute. This attribute is applied to `extern` blocks and specifies raw flags
-which need to get passed to the linker when producing an artifact. An example
-usage would be:
-
-```rust,no_run
-#![feature(link_args)]
-
-#[link_args = "-foo -bar -baz"]
-extern "C" {}
-# fn main() {}
-```
-
-Note that this feature is currently hidden behind the `feature(link_args)` gate
-because this is not a sanctioned way of performing linking. Right now `rustc`
-shells out to the system linker (`gcc` on most systems, `link.exe` on MSVC), so
-it makes sense to provide extra command line arguments, but this will not
-always be the case. In the future `rustc` may use LLVM directly to link native
-libraries, in which case `link_args` will have no meaning. You can achieve the
-same effect as the `link_args` attribute with the `-C link-args` argument to
-`rustc`.
-
-It is highly recommended to *not* use this attribute, and rather use the more
-formal `#[link(...)]` attribute on `extern` blocks instead.
sym foo,
// 1st argument in rdi, which is caller-saved
inout("rdi") arg => _,
- // All caller-saved registers must be marked as clobberred
+ // All caller-saved registers must be marked as clobbered
out("rax") _, out("rcx") _, out("rdx") _, out("rsi") _,
out("r8") _, out("r9") _, out("r10") _, out("r11") _,
out("xmm0") _, out("xmm1") _, out("xmm2") _, out("xmm3") _,
out("xmm4") _, out("xmm5") _, out("xmm6") _, out("xmm7") _,
out("xmm8") _, out("xmm9") _, out("xmm10") _, out("xmm11") _,
out("xmm12") _, out("xmm13") _, out("xmm14") _, out("xmm15") _,
+ // Also mark AVX-512 registers as clobbered. This is accepted by the
+ // compiler even if AVX-512 is not enabled on the current target.
+ out("xmm16") _, out("xmm17") _, out("xmm18") _, out("xmm19") _,
+ out("xmm20") _, out("xmm21") _, out("xmm22") _, out("xmm13") _,
+ out("xmm24") _, out("xmm25") _, out("xmm26") _, out("xmm27") _,
+ out("xmm28") _, out("xmm29") _, out("xmm30") _, out("xmm31") _,
)
}
}
| x86 | `reg` | `ax`, `bx`, `cx`, `dx`, `si`, `di`, `r[8-15]` (x86-64 only) | `r` |
| x86 | `reg_abcd` | `ax`, `bx`, `cx`, `dx` | `Q` |
| x86-32 | `reg_byte` | `al`, `bl`, `cl`, `dl`, `ah`, `bh`, `ch`, `dh` | `q` |
-| x86-64 | `reg_byte` | `al`, `bl`, `cl`, `dl`, `sil`, `dil`, `r[8-15]b`, `ah`\*, `bh`\*, `ch`\*, `dh`\* | `q` |
+| x86-64 | `reg_byte`\* | `al`, `bl`, `cl`, `dl`, `sil`, `dil`, `r[8-15]b` | `q` |
| x86 | `xmm_reg` | `xmm[0-7]` (x86) `xmm[0-15]` (x86-64) | `x` |
| x86 | `ymm_reg` | `ymm[0-7]` (x86) `ymm[0-15]` (x86-64) | `x` |
| x86 | `zmm_reg` | `zmm[0-7]` (x86) `zmm[0-31]` (x86-64) | `v` |
> **Note**: On x86 we treat `reg_byte` differently from `reg` because the compiler can allocate `al` and `ah` separately whereas `reg` reserves the whole register.
>
-> Note #2: On x86-64 the high byte registers (e.g. `ah`) are only available when used as an explicit register. Specifying the `reg_byte` register class for an operand will always allocate a low byte register.
+> Note #2: On x86-64 the high byte registers (e.g. `ah`) are not available in the `reg_byte` register class.
>
> Note #3: NVPTX doesn't have a fixed register set, so named registers are not supported.
>
"windows" => "Windows",
_ => "",
},
+ (sym::wasm, None) => "WebAssembly",
(sym::target_arch, Some(arch)) => match &*arch.as_str() {
"aarch64" => "AArch64",
"arm" => "ARM",
"powerpc64" => "PowerPC-64",
"s390x" => "s390x",
"sparc64" => "SPARC64",
- "wasm32" => "WebAssembly",
+ "wasm32" | "wasm64" => "WebAssembly",
"x86" => "x86",
"x86_64" => "x86-64",
_ => "",
debug!("trying to get a name from pattern: {:?}", p);
Symbol::intern(&match p.kind {
- PatKind::Wild => return kw::Underscore,
+ PatKind::Wild | PatKind::Struct(..) => return kw::Underscore,
PatKind::Binding(_, _, ident, _) => return ident.name,
PatKind::TupleStruct(ref p, ..) | PatKind::Path(ref p) => qpath_to_string(p),
- PatKind::Struct(ref name, ref fields, etc) => format!(
- "{} {{ {}{} }}",
- qpath_to_string(name),
- fields
- .iter()
- .map(|fp| format!("{}: {}", fp.ident, name_from_pat(&fp.pat)))
- .collect::<Vec<String>>()
- .join(", "),
- if etc { ", .." } else { "" }
- ),
PatKind::Or(ref pats) => pats
.iter()
.map(|p| name_from_pat(&**p).to_string())
return Err(1);
}
if theme_file.extension() != Some(OsStr::new("css")) {
- diag.struct_err(&format!("invalid argument: \"{}\"", theme_s)).emit();
+ diag.struct_err(&format!("invalid argument: \"{}\"", theme_s))
+ .help("arguments to --theme must have a .css extension")
+ .emit();
return Err(1);
}
let (success, ret) = theme::test_theme_against(&theme_file, &paths, &diag);
}
if v.iter().any(|i| i.inner_impl().trait_.is_some()) {
- if let Some(impl_) = v
- .iter()
- .filter(|i| i.inner_impl().trait_.is_some())
- .find(|i| i.inner_impl().trait_.def_id_full(cache) == cx.cache.deref_trait_did)
- {
- sidebar_deref_methods(cx, out, impl_, v);
- }
let format_impls = |impls: Vec<&Impl>| {
let mut links = FxHashSet::default();
);
write_sidebar_links(out, blanket_format);
}
+
+ if let Some(impl_) = v
+ .iter()
+ .filter(|i| i.inner_impl().trait_.is_some())
+ .find(|i| i.inner_impl().trait_.def_id_full(cache) == cx.cache.deref_trait_did)
+ {
+ sidebar_deref_methods(cx, out, impl_, v);
+ }
}
}
}
"FiraSans-Regular.woff" => static_files::fira_sans::REGULAR,
"FiraSans-Medium.woff" => static_files::fira_sans::MEDIUM,
"FiraSans-LICENSE.txt" => static_files::fira_sans::LICENSE,
- "SourceSerifPro-Regular.ttf.woff" => static_files::source_serif_pro::REGULAR,
- "SourceSerifPro-Bold.ttf.woff" => static_files::source_serif_pro::BOLD,
- "SourceSerifPro-It.ttf.woff" => static_files::source_serif_pro::ITALIC,
- "SourceSerifPro-LICENSE.md" => static_files::source_serif_pro::LICENSE,
+ "SourceSerif4-Regular.ttf.woff" => static_files::source_serif_4::REGULAR,
+ "SourceSerif4-Bold.ttf.woff" => static_files::source_serif_4::BOLD,
+ "SourceSerif4-It.ttf.woff" => static_files::source_serif_4::ITALIC,
+ "SourceSerif4-LICENSE.md" => static_files::source_serif_4::LICENSE,
"SourceCodePro-Regular.ttf.woff" => static_files::source_code_pro::REGULAR,
"SourceCodePro-Semibold.ttf.woff" => static_files::source_code_pro::SEMIBOLD,
"SourceCodePro-It.ttf.woff" => static_files::source_code_pro::ITALIC,
Licensed under the SIL Open Font License, Version 1.1.
See SourceCodePro-LICENSE.txt.
-* Source Serif Pro (SourceSerifPro-Regular.ttf.woff,
- SourceSerifPro-Bold.ttf.woff, SourceSerifPro-It.ttf.woff):
+* Source Serif 4 (SourceSerif4-Regular.ttf.woff, SourceSerif4-Bold.ttf.woff,
+ SourceSerif4-It.ttf.woff):
- Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with
- Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of
- Adobe Systems Incorporated in the United States and/or other countries.
+ Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name
+ 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United
+ States and/or other countries.
Licensed under the SIL Open Font License, Version 1.1.
- See SourceSerifPro-LICENSE.txt.
+ See SourceSerif4-LICENSE.md.
This copyright file is intended to be distributed with rustdoc output.
--- /dev/null
+Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+++ /dev/null
-Copyright 2014-2018 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-
-This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
var titleBeforeSearch = document.title;
var searchTitle = null;
+ function removeEmptyStringsFromArray(x) {
+ for (var i = 0, len = x.length; i < len; ++i) {
+ if (x[i] === "") {
+ x.splice(i, 1);
+ i -= 1;
+ }
+ }
+ }
+
function clearInputTimeout() {
if (searchTimeout !== null) {
clearTimeout(searchTimeout);
results = {}, results_in_args = {}, results_returned = {},
split = valLower.split("::");
- split = split.filter(function(segment) { return segment !== ""; });
+ removeEmptyStringsFromArray(split);
function transformResults(results, isType) {
var out = [];
var valGenerics = extractGenerics(val);
var paths = valLower.split("::");
- var j;
- for (j = 0, len = paths.length; j < len; ++j) {
- if (paths[j] === "") {
- paths.splice(j, 1);
- j -= 1;
- }
- }
+ removeEmptyStringsFromArray(paths);
val = paths[paths.length - 1];
var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1);
- var lev;
+ var lev, j;
for (j = 0; j < nSearchWords; ++j) {
ty = searchIndex[j];
if (!ty || (filterCrates !== undefined && ty.crate !== filterCrates)) {
font-display: swap;
}
-/* See SourceSerifPro-LICENSE.txt for the Source Serif Pro license. */
+/* See SourceSerif4-LICENSE.md for the Source Serif 4 license. */
@font-face {
- font-family: 'Source Serif Pro';
+ font-family: 'Source Serif 4';
font-style: normal;
font-weight: 400;
- src: local('Source Serif Pro'), url("SourceSerifPro-Regular.ttf.woff") format('woff');
+ src: local('Source Serif 4'), url("SourceSerif4-Regular.ttf.woff") format('woff');
font-display: swap;
}
@font-face {
- font-family: 'Source Serif Pro';
+ font-family: 'Source Serif 4';
font-style: italic;
font-weight: 400;
- src: local('Source Serif Pro Italic'), url("SourceSerifPro-It.ttf.woff") format('woff');
+ src: local('Source Serif 4 Italic'), url("SourceSerif4-It.ttf.woff") format('woff');
font-display: swap;
}
@font-face {
- font-family: 'Source Serif Pro';
+ font-family: 'Source Serif 4';
font-style: normal;
font-weight: 700;
- src: local('Source Serif Pro Bold'), url("SourceSerifPro-Bold.ttf.woff") format('woff');
+ src: local('Source Serif 4 Bold'), url("SourceSerif4-Bold.ttf.woff") format('woff');
font-display: swap;
}
/* General structure and fonts */
body {
- font: 16px/1.4 "Source Serif Pro", serif;
+ font: 16px/1.4 "Source Serif 4", serif;
margin: 0;
position: relative;
padding: 10px 15px 20px 15px;
crate static LICENSE: &[u8] = include_bytes!("static/FiraSans-LICENSE.txt");
}
-/// Files related to the Source Serif Pro font.
-crate mod source_serif_pro {
- /// The file `SourceSerifPro-Regular.ttf.woff`, the Regular variant of the Source Serif Pro
- /// font.
- crate static REGULAR: &[u8] = include_bytes!("static/SourceSerifPro-Regular.ttf.woff");
+/// Files related to the Source Serif 4 font.
+crate mod source_serif_4 {
+ /// The file `SourceSerif4-Regular.ttf.woff`, the Regular variant of the Source Serif 4 font.
+ crate static REGULAR: &[u8] = include_bytes!("static/SourceSerif4-Regular.ttf.woff");
- /// The file `SourceSerifPro-Bold.ttf.woff`, the Bold variant of the Source Serif Pro font.
- crate static BOLD: &[u8] = include_bytes!("static/SourceSerifPro-Bold.ttf.woff");
+ /// The file `SourceSerif4-Bold.ttf.woff`, the Bold variant of the Source Serif 4 font.
+ crate static BOLD: &[u8] = include_bytes!("static/SourceSerif4-Bold.ttf.woff");
- /// The file `SourceSerifPro-It.ttf.woff`, the Italic variant of the Source Serif Pro font.
- crate static ITALIC: &[u8] = include_bytes!("static/SourceSerifPro-It.ttf.woff");
+ /// The file `SourceSerif4-It.ttf.woff`, the Italic variant of the Source Serif 4 font.
+ crate static ITALIC: &[u8] = include_bytes!("static/SourceSerif4-It.ttf.woff");
- /// The file `SourceSerifPro-LICENSE.txt`, the license text for the Source Serif Pro font.
- crate static LICENSE: &[u8] = include_bytes!("static/SourceSerifPro-LICENSE.md");
+ /// The file `SourceSerif4-LICENSE.txt`, the license text for the Source Serif 4 font.
+ crate static LICENSE: &[u8] = include_bytes!("static/SourceSerif4-LICENSE.md");
}
/// Files related to the Source Code Pro font.
Ok(Some((d, path))) => (path.trim(), Some(d)),
Ok(None) => (link.trim(), None),
Err((err_msg, relative_range)) => {
- let disambiguator_range = (no_backticks_range.start + relative_range.start)
- ..(no_backticks_range.start + relative_range.end);
- disambiguator_error(self.cx, &item, dox, disambiguator_range, &err_msg);
+ if !should_ignore_link_with_disambiguators(link) {
+ // Only report error if we would not have ignored this link.
+ // See issue #83859.
+ let disambiguator_range = (no_backticks_range.start + relative_range.start)
+ ..(no_backticks_range.start + relative_range.end);
+ disambiguator_error(self.cx, &item, dox, disambiguator_range, &err_msg);
+ }
return None;
}
};
- if path_str.contains(|ch: char| !(ch.is_alphanumeric() || ":_<>, !*&;".contains(ch))) {
+ if should_ignore_link(path_str) {
return None;
}
..(ori_link.range.start + before_second_backtick_group)
}
+/// Returns true if we should ignore `link` due to it being unlikely
+/// that it is an intra-doc link. `link` should still have disambiguators
+/// if there were any.
+///
+/// The difference between this and [`should_ignore_link()`] is that this
+/// check should only be used on links that still have disambiguators.
+fn should_ignore_link_with_disambiguators(link: &str) -> bool {
+ link.contains(|ch: char| !(ch.is_alphanumeric() || ":_<>, !*&;@()".contains(ch)))
+}
+
+/// Returns true if we should ignore `path_str` due to it being unlikely
+/// that it is an intra-doc link.
+fn should_ignore_link(path_str: &str) -> bool {
+ path_str.contains(|ch: char| !(ch.is_alphanumeric() || ":_<>, !*&;".contains(ch)))
+}
+
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
/// Disambiguators for a link.
crate enum Disambiguator {
# stable release's version number. `date` is the date where the release we're
# bootstrapping off was released.
-date: 2021-02-14
+date: 2021-03-26
rustc: beta
# We use a nightly rustfmt to format the source because it solves some
# bootstrapping issues with use of new syntax in this repo. If you're looking at
# the beta/stable branch, this key should be omitted, as we don't want to depend
# on rustfmt from nightly there.
-rustfmt: nightly-2021-01-28
+rustfmt: nightly-2021-03-25
# When making a stable release the process currently looks like:
#
// CHECK: #NO_APP
check_reg!(eax_ptr ptr "eax" "mov");
-// CHECK-LABEL: ah_byte:
-// CHECK: #APP
-// CHECK: mov ah, ah
-// CHECK: #NO_APP
+// i686-LABEL: ah_byte:
+// i686: #APP
+// i686: mov ah, ah
+// i686: #NO_APP
+#[cfg(i686)]
check_reg!(ah_byte i8 "ah" "mov");
// CHECK-LABEL: xmm0_i32:
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)]
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager -Zinline-in-all-cgus -Zmir-opt-level=0
#![deny(dead_code)]
// ignoring this test until MIR codegen has taken over completely
// ignore-test
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)]
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)]
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus
-// ignore-tidy-linelength
+//
// compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=eager -Cincremental=tmp/partitioning-tests/extern-generic -Zshare-generics=y
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/inlining-from-extern-crate
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// We specify opt-level=0 because `drop_in_place` is `Internal` when optimizing
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/local-inlining-but-not-all
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/local-inlining
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/local-transitive-inlining
// much sense at the moment.
// ignore-test
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/methods-are-with-self-type
-// ignore-tidy-linelength
+//
// no-prefer-dynamic
// NOTE: We always compile this test with -Copt-level=0 because higher opt-levels
// prevent drop-glue from participating in share-generics.
-// ignore-tidy-linelength
+//
// We specify -C incremental here because we want to test the partitioning for
// incremental compilation
// compile-flags: -C no-prepopulate-passes -Z mir-opt-level=0
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
// compile-flags: -C no-prepopulate-passes -Z mir-opt-level=0
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
--- /dev/null
+// only-x86_64
+// revisions: base avx512
+// [avx512]compile-flags: -C target-feature=+avx512f
+
+#![crate_type = "rlib"]
+#![feature(asm)]
+
+// CHECK-LABEL: @avx512_clobber
+// base: call void asm sideeffect inteldialect "", "~{xmm31}"()
+// avx512: call float asm sideeffect inteldialect "", "=&{xmm31}"()
+#[no_mangle]
+pub unsafe fn avx512_clobber() {
+ asm!("", out("zmm31") _, options(nostack, nomem, preserves_flags));
+}
+
+// CHECK-LABEL: @eax_clobber
+// CHECK: call i32 asm sideeffect inteldialect "", "=&{ax}"()
+#[no_mangle]
+pub unsafe fn eax_clobber() {
+ asm!("", out("eax") _, options(nostack, nomem, preserves_flags));
+}
// - The generator types and variants are marked artificial
// - Captured vars from the source are not marked artificial
//
-// ignore-tidy-linelength
+//
// compile-flags: -C debuginfo=2 --edition=2018
// only-msvc
// - The generator types and variants are marked artificial
// - Captured vars from the source are not marked artificial
//
-// ignore-tidy-linelength
+//
// compile-flags: -C debuginfo=2 --edition=2018
// ignore-msvc
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
#![feature(c_variadic)]
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
// compile-flags: -g --remap-path-prefix={{cwd}}=/cwd/ --remap-path-prefix={{src-base}}=/base/
-// ignore-tidy-linelength
+//
//
// Ensure that we remap the compile unit directory and that we set it to the compilers current
// working directory and not something else.
// This tests that debug info for "c-like" enums is properly emitted.
// This is ignored for the fallback mode on MSVC due to problems with PDB.
-// ignore-tidy-linelength
+//
// ignore-msvc
// compile-flags: -g -C no-prepopulate-passes
// This tests that optimized enum debug info accurately reflects the enum layout.
// This is ignored for the fallback mode on MSVC due to problems with PDB.
-// ignore-tidy-linelength
+//
// ignore-msvc
// compile-flags: -g -C no-prepopulate-passes
// compile-flags: -O -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// min-system-llvm-version: 12.0
#![crate_type = "lib"]
-// ignore-tidy-linelength
+//
// ignore-windows
// ignore-macos
// ignore-wasm
// - The generator types and variants are marked artificial
// - Captured vars from the source are not marked artificial
//
-// ignore-tidy-linelength
+//
// compile-flags: -C debuginfo=2
// only-msvc
// - The generator types and variants are marked artificial
// - Captured vars from the source are not marked artificial
//
-// ignore-tidy-linelength
+//
// compile-flags: -C debuginfo=2 --edition=2018
// ignore-msvc
#![crate_type="rlib"]
// compile-flags: -Copt-level=3 -g
-// ignore-tidy-linelength
+//
#[no_mangle]
#[inline(always)]
-// ignore-tidy-linelength
+//
// compile-flags: -Z instrument-mcount
#![crate_type = "lib"]
-// ignore-tidy-linelength
+//
// only-macos
// no-system-llvm
// compile-flags: -O
--- /dev/null
+// This test checks that comparison operation
+// generated by #[derive(PartialOrd)]
+// doesn't contain jumps for C enums
+
+// compile-flags: -Copt-level=3
+
+#![crate_type="lib"]
+
+#[repr(u32)]
+#[derive(Copy, Clone, Eq, PartialEq, PartialOrd)]
+pub enum Foo {
+ Zero,
+ One,
+ Two,
+}
+
+#[no_mangle]
+pub fn compare_less(a: Foo, b: Foo)->bool{
+ // CHECK-NOT: br {{.*}}
+ a < b
+}
+
+#[no_mangle]
+pub fn compare_le(a: Foo, b: Foo)->bool{
+ // CHECK-NOT: br {{.*}}
+ a <= b
+}
+
+#[no_mangle]
+pub fn compare_ge(a: Foo, b: Foo)->bool{
+ // CHECK-NOT: br {{.*}}
+ a >= b
+}
+
+#[no_mangle]
+pub fn compare_greater(a: Foo, b: Foo)->bool{
+ // CHECK-NOT: br {{.*}}
+ a > b
+}
-// ignore-tidy-linelength
+//
// compile-flags: -O -C no-prepopulate-passes
#![crate_type = "lib"]
-// ignore-tidy-linelength
+//
// compile-flags: -g --remap-path-prefix={{cwd}}=/the/aux-cwd --remap-path-prefix={{src-base}}/remap_path_prefix/auxiliary=/the/aux-src
-// ignore-tidy-linelength
+//
// compile-flags: -g --remap-path-prefix={{cwd}}=/the/aux-cwd --remap-path-prefix={{src-base}}/remap_path_prefix/auxiliary=/the/aux-src
#![crate_type = "lib"]
// ignore-windows
-// ignore-tidy-linelength
+//
// compile-flags: -g -C no-prepopulate-passes --remap-path-prefix={{cwd}}=/the/cwd --remap-path-prefix={{src-base}}=/the/src
// aux-build:remap_path_prefix_aux.rs
// compile-flags: -O
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// min-system-llvm-version: 12.0
// ignore-arm
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// min-system-llvm-version: 12.0
// ignore-aarch64
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// min-system-llvm-version: 12.0
// only-mips64
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
// only-riscv64
// only-linux
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
// only-riscv64
// only-linux
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
// only-riscv64
// only-linux
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes
#![crate_type = "lib"]
// compile-flags: -C no-prepopulate-passes
-// ignore-tidy-linelength
+//
#![crate_type = "lib"]
// "target-cpu" attribute in LLVM.
// no-prefer-dynamic
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes -C panic=abort -C linker-plugin-lto -Cpasses=name-anon-globals
#![crate_type = "staticlib"]
// "tune-cpu" attribute in LLVM.
// no-prefer-dynamic
-// ignore-tidy-linelength
+//
// compile-flags: -C no-prepopulate-passes -C panic=abort -C linker-plugin-lto -Cpasses=name-anon-globals -Z tune-cpu=generic
#![crate_type = "staticlib"]
-// ignore-tidy-linelength
-
// Require a gdb or lldb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
// rust-lldb
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
// ignore-test // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
// min-lldb-version: 310
-// ignore-tidy-linelength
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
-
// ignore-aarch64
// ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
// min-lldb-version: 310
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// This fails on lldb 6.0.1 on x86-64 Fedora 28; so mark it macOS-only
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
// ignore-test // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
// min-lldb-version: 310
-// ignore-tidy-linelength
// ignore-lldb
// ignore-android: FIXME(#10381)
// min-gdb-version: 8.1
-// ignore-tidy-linelength
-
// Require a gdb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
-// ignore-tidy-linelength
-
// compile-flags:-g
// Some versions of the non-rust-enabled LLDB print the wrong generic
-// ignore-tidy-linelength
// min-lldb-version: 310
// Require a gdb that can read DW_TAG_variant_part.
-// ignore-tidy-linelength
-
// Some versions of the non-rust-enabled LLDB print the wrong generic
// parameter type names in this test.
// rust-lldb
-// ignore-tidy-linelength
-
// Require a gdb or lldb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
// rust-lldb
// Require a gdb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
-// ignore-tidy-linelength
// compile-flags:-g
-// ignore-tidy-linelength
// min-lldb-version: 310
// ignore-test // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
-// ignore-tidy-linelength
// ignore-test // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
// min-lldb-version: 310
-// ignore-tidy-linelength
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
// min-lldb-version: 310
// ignore-gdb-version: 7.11.90 - 7.12.9
-// ignore-tidy-linelength
// ignore-windows failing on win32 bot
// ignore-freebsd: gdb package too new
// ignore-android: FIXME(#10381)
// Need a fix for LLDB first...
// ignore-lldb
-// ignore-tidy-linelength
// FIXME: LLVM generates invalid debug info for variables requiring
// dynamic stack realignment, which is the case on s390x for vector
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
-// ignore-tidy-linelength
// min-lldb-version: 310
// ignore-gdb-version: 7.11.90 - 7.12.9
// ignore-test // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
-// ignore-tidy-linelength
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
-
// Require a gdb or lldb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
// rust-lldb
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
-
// min-lldb-version: 310
// compile-flags:-g
-// ignore-tidy-linelength
-
// Require a gdb or lldb that can read DW_TAG_variant_part.
// min-gdb-version: 8.2
// rust-lldb
-// ignore-tidy-linelength
// ignore-lldb
// ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
-// ignore-tidy-linelength
-
// ignore-windows
// ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
// min-lldb-version: 310
#![allow(warnings)]
#![feature(rustc_attrs)]
#![feature(unboxed_closures)]
-#![feature(link_args)]
#![crate_type = "rlib"]
// Change function name --------------------------------------------------------
pub fn add_function2();
}
-// Change link-args ------------------------------------------------------------
-#[cfg(cfail1)]
-#[link_args = "-foo -bar"]
-extern "C" {
- pub fn change_link_args(c: i32);
-}
-
-#[cfg(not(cfail1))]
-#[rustc_dirty(cfg = "cfail2", except = "hir_owner,hir_owner_nodes")]
-#[rustc_clean(cfg = "cfail3")]
-#[link_args = "-foo -bar -baz"]
-extern "C" {
- pub fn change_link_args(c: i32);
-}
-
// Change link-name ------------------------------------------------------------
#[cfg(cfail1)]
#[link(name = "foo")]
-// ignore-tidy-linelength
// compile-flags: -Z mir-opt-level=4 -Zunsound-mir-opts
// example from #68867
+ // MIR for `try_sum` after SimplifyBranches-final
fn try_sum(_1: &ViewportPercentageLength, _2: &ViewportPercentageLength) -> Result<ViewportPercentageLength, ()> {
- debug x => _1; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:18:5: 18:6
- debug other => _2; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:19:5: 19:10
- let mut _0: std::result::Result<ViewportPercentageLength, ()>; // return place in scope 0 at $DIR/early_otherwise_branch_68867.rs:20:6: 20:42
- let mut _3: ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
- let mut _4: (&ViewportPercentageLength, &ViewportPercentageLength); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- let mut _5: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
- let mut _6: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
- let mut _7: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
- let mut _8: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
- let mut _9: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
- let mut _10: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
- let mut _11: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
- let _12: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
- let _13: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
- let mut _14: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
- let mut _15: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
- let mut _16: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
- let _17: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
- let _18: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
- let mut _19: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
- let mut _20: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
- let mut _21: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
- let _22: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
- let _23: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
- let mut _24: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
- let mut _25: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
- let mut _26: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
- let _27: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
- let _28: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
- let mut _29: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
- let mut _30: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
- let mut _31: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
- let mut _32: !; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:27:14: 27:28
- let mut _33: (); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
-+ let mut _34: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-+ let mut _35: bool; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+ debug x => _1; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:17:5: 17:6
+ debug other => _2; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:18:5: 18:10
+ let mut _0: std::result::Result<ViewportPercentageLength, ()>; // return place in scope 0 at $DIR/early_otherwise_branch_68867.rs:19:6: 19:42
+ let mut _3: ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
+ let mut _4: (&ViewportPercentageLength, &ViewportPercentageLength); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ let mut _5: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+ let mut _6: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+ let mut _7: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
+ let mut _8: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+ let mut _9: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
+ let mut _10: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+ let mut _11: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
+ let _12: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+ let _13: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+ let mut _14: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+ let mut _15: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+ let mut _16: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+ let _17: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ let _18: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+ let mut _19: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+ let mut _20: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+ let mut _21: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+ let _22: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+ let _23: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+ let mut _24: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+ let mut _25: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+ let mut _26: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+ let _27: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ let _28: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+ let mut _29: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+ let mut _30: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+ let mut _31: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+ let mut _32: !; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:14: 26:28
+ let mut _33: (); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
++ let mut _34: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
++ let mut _35: bool; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
scope 1 {
-- debug one => _12; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
-- debug other => _13; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
-+ debug one => _15; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
-+ debug other => _16; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+- debug one => _12; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+- debug other => _13; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
++ debug one => _15; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
++ debug other => _16; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
}
scope 2 {
-- debug one => _17; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-- debug other => _18; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
-+ debug one => _20; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-+ debug other => _21; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
+- debug one => _17; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+- debug other => _18; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
++ debug one => _20; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
++ debug other => _21; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
}
scope 3 {
-- debug one => _22; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
-- debug other => _23; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
-+ debug one => _25; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
-+ debug other => _26; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+- debug one => _22; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+- debug other => _23; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
++ debug one => _25; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
++ debug other => _26; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
}
scope 4 {
-- debug one => _27; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-- debug other => _28; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
-+ debug one => _30; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-+ debug other => _31; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
+- debug one => _27; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+- debug other => _28; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
++ debug one => _30; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
++ debug other => _31; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
}
bb0: {
-- StorageLive(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-- StorageLive(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
-- StorageLive(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
-- _5 = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
-+ (_4.0: &ViewportPercentageLength) = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
- StorageLive(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
- _6 = _2; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
-- (_4.0: &ViewportPercentageLength) = move _5; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- (_4.1: &ViewportPercentageLength) = move _6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- StorageDead(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:23: 22:24
-- StorageDead(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:23: 22:24
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:23: 22:24
- _11 = discriminant((*(_4.0: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-- switchInt(move _11) -> [0_isize: bb1, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageLive(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ _34 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageLive(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ _35 = Ne(_34, _11); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageDead(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ switchInt(move _35) -> [false: bb7, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
+- StorageLive(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
+- StorageLive(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+- StorageLive(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+- _5 = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
++ (_4.0: &ViewportPercentageLength) = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+ StorageLive(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+ _6 = _2; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+- (_4.0: &ViewportPercentageLength) = move _5; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ (_4.1: &ViewportPercentageLength) = move _6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ StorageDead(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:23: 21:24
+- StorageDead(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:23: 21:24
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:23: 21:24
+ _11 = discriminant((*(_4.0: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
+- switchInt(move _11) -> [0_isize: bb1, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageLive(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ _34 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageLive(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ _35 = Ne(_34, _11); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageDead(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ switchInt(move _35) -> [false: bb7, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
}
bb1: {
-- _7 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-- switchInt(move _7) -> [0_isize: bb6, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+- _7 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
+- switchInt(move _7) -> [0_isize: bb6, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
- }
-
- bb2: {
-+ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
- StorageLive(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
-- nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:21: 27:28
- discriminant(_0) = 1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:21: 27:28
- StorageDead(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:27: 27:28
-- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
-- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
- return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:2: 29:2
++ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
+ StorageLive(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
+- nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:21: 26:28
+ discriminant(_0) = 1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:21: 26:28
+ StorageDead(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:27: 26:28
+- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
+- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
+ return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:2: 28:2
}
+ bb2: {
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
++ _15 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
++ _16 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
++ ((((_0 as Ok).0: ViewportPercentageLength) as Vw).0: f32) = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
++ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
++ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ }
++
+ bb3: {
+- _8 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+- switchInt(move _8) -> [1_isize: bb7, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
-+ _15 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
++ _20 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
-+ _16 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
-+ ((((_0 as Ok).0: ViewportPercentageLength) as Vw).0: f32) = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
-+ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
-+ nop; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
++ _21 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
++ ((((_0 as Ok).0: ViewportPercentageLength) as Vh).0: f32) = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
++ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
++ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ }
-+
- bb3: {
-- _8 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
-- switchInt(move _8) -> [1_isize: bb7, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-+ _20 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
-+ _21 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
-+ ((((_0 as Ok).0: ViewportPercentageLength) as Vh).0: f32) = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
-+ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
-+ nop; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
bb4: {
-- _9 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
-- switchInt(move _9) -> [2_isize: bb8, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+- _9 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
+- switchInt(move _9) -> [2_isize: bb8, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
++ _25 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
++ _26 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
++ ((((_0 as Ok).0: ViewportPercentageLength) as Vmin).0: f32) = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
++ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
++ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
+ }
+
+ bb5: {
+- _10 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+- switchInt(move _10) -> [3_isize: bb9, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
-+ _25 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
++ _30 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
-+ _26 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
-+ ((((_0 as Ok).0: ViewportPercentageLength) as Vmin).0: f32) = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
-+ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
-+ nop; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
++ _31 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
++ ((((_0 as Ok).0: ViewportPercentageLength) as Vmax).0: f32) = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
++ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
++ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
- }
-
- bb5: {
-- _10 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
-- switchInt(move _10) -> [3_isize: bb9, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-+ _30 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
-+ _31 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
-+ ((((_0 as Ok).0: ViewportPercentageLength) as Vmax).0: f32) = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
-+ discriminant(((_0 as Ok).0: ViewportPercentageLength)) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
-+ nop; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
bb6: {
-- StorageLive(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
-- _12 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
-- StorageLive(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
-- _13 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
-- StorageLive(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
-- StorageLive(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
-- _15 = _12; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
-- StorageLive(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
-- _16 = _13; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
-- _14 = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
-- StorageDead(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
-- StorageDead(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
-- ((_3 as Vw).0: f32) = move _14; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
-- discriminant(_3) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
-- StorageDead(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
-- StorageDead(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
-- StorageDead(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
-+ discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
-+ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
-+ return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:2: 29:2
+- StorageLive(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+- _12 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+- StorageLive(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+- _13 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+- StorageLive(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+- StorageLive(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+- _15 = _12; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+- StorageLive(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+- _16 = _13; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+- _14 = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+- StorageDead(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
+- StorageDead(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
+- ((_3 as Vw).0: f32) = move _14; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
+- discriminant(_3) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
+- StorageDead(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+- StorageDead(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+- StorageDead(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
++ discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
++ nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
++ return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:2: 28:2
}
bb7: {
-- StorageLive(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-- _17 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
-- StorageLive(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
-- _18 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
-- StorageLive(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
-- StorageLive(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
-- _20 = _17; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
-- StorageLive(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
-- _21 = _18; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
-- _19 = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
-- StorageDead(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
-- StorageDead(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
-- ((_3 as Vh).0: f32) = move _19; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
-- discriminant(_3) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
-- StorageDead(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-- StorageDead(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-- StorageDead(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+- StorageLive(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+- _17 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+- StorageLive(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+- _18 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+- StorageLive(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+- StorageLive(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+- _20 = _17; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+- StorageLive(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+- _21 = _18; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+- _19 = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+- StorageDead(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
+- StorageDead(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
+- ((_3 as Vh).0: f32) = move _19; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
+- discriminant(_3) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
+- StorageDead(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+- StorageDead(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+- StorageDead(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
- }
-
- bb8: {
-- StorageLive(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
-- _22 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
-- StorageLive(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
-- _23 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
-- StorageLive(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
-- StorageLive(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
-- _25 = _22; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
-- StorageLive(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
-- _26 = _23; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
-- _24 = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
-- StorageDead(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
-- StorageDead(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
-- ((_3 as Vmin).0: f32) = move _24; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
-- discriminant(_3) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
-- StorageDead(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
-- StorageDead(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
-- StorageDead(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+- StorageLive(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+- _22 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+- StorageLive(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+- _23 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+- StorageLive(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+- StorageLive(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+- _25 = _22; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+- StorageLive(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+- _26 = _23; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+- _24 = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+- StorageDead(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
+- StorageDead(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
+- ((_3 as Vmin).0: f32) = move _24; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
+- discriminant(_3) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
+- StorageDead(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+- StorageDead(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+- StorageDead(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
- }
-
- bb9: {
-- StorageLive(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-- _27 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
-- StorageLive(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
-- _28 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
-- StorageLive(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
-- StorageLive(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
-- _30 = _27; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
-- StorageLive(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
-- _31 = _28; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
-- _29 = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
-- StorageDead(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
-- StorageDead(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
-- ((_3 as Vmax).0: f32) = move _29; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
-- discriminant(_3) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
-- StorageDead(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-- StorageDead(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-- StorageDead(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+- StorageLive(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+- _27 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+- StorageLive(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+- _28 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+- StorageLive(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+- StorageLive(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+- _30 = _27; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+- StorageLive(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+- _31 = _28; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+- _29 = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+- StorageDead(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
+- StorageDead(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
+- ((_3 as Vmax).0: f32) = move _29; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
+- discriminant(_3) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
+- StorageDead(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+- StorageDead(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+- StorageDead(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
- }
-
- bb10: {
-- ((_0 as Ok).0: ViewportPercentageLength) = move _3; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
-- discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
-- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
-- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
-- return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:2: 29:2
-+ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-+ switchInt(_11) -> [0_isize: bb2, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+- ((_0 as Ok).0: ViewportPercentageLength) = move _3; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
+- discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
+- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
+- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
+- return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:2: 28:2
++ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
++ switchInt(_11) -> [0_isize: bb2, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
}
}
+ // MIR for `try_sum` after EarlyOtherwiseBranch
fn try_sum(_1: &ViewportPercentageLength, _2: &ViewportPercentageLength) -> Result<ViewportPercentageLength, ()> {
- debug x => _1; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:18:5: 18:6
- debug other => _2; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:19:5: 19:10
- let mut _0: std::result::Result<ViewportPercentageLength, ()>; // return place in scope 0 at $DIR/early_otherwise_branch_68867.rs:20:6: 20:42
- let mut _3: ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
- let mut _4: (&ViewportPercentageLength, &ViewportPercentageLength); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- let mut _5: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
- let mut _6: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
- let mut _7: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
- let mut _8: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
- let mut _9: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
- let mut _10: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
- let mut _11: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
- let _12: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
- let _13: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
- let mut _14: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
- let mut _15: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
- let mut _16: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
- let _17: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
- let _18: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
- let mut _19: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
- let mut _20: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
- let mut _21: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
- let _22: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
- let _23: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
- let mut _24: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
- let mut _25: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
- let mut _26: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
- let _27: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
- let _28: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
- let mut _29: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
- let mut _30: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
- let mut _31: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
- let mut _32: !; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:27:14: 27:28
- let mut _33: (); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
-+ let mut _34: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-+ let mut _35: bool; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+ debug x => _1; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:17:5: 17:6
+ debug other => _2; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:18:5: 18:10
+ let mut _0: std::result::Result<ViewportPercentageLength, ()>; // return place in scope 0 at $DIR/early_otherwise_branch_68867.rs:19:6: 19:42
+ let mut _3: ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
+ let mut _4: (&ViewportPercentageLength, &ViewportPercentageLength); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ let mut _5: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+ let mut _6: &ViewportPercentageLength; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+ let mut _7: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
+ let mut _8: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+ let mut _9: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
+ let mut _10: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+ let mut _11: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
+ let _12: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+ let _13: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+ let mut _14: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+ let mut _15: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+ let mut _16: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+ let _17: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ let _18: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+ let mut _19: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+ let mut _20: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+ let mut _21: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+ let _22: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+ let _23: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+ let mut _24: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+ let mut _25: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+ let mut _26: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+ let _27: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ let _28: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+ let mut _29: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+ let mut _30: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+ let mut _31: f32; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+ let mut _32: !; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:14: 26:28
+ let mut _33: (); // in scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
++ let mut _34: isize; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
++ let mut _35: bool; // in scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
scope 1 {
- debug one => _12; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
- debug other => _13; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+ debug one => _12; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+ debug other => _13; // in scope 1 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
}
scope 2 {
- debug one => _17; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
- debug other => _18; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
+ debug one => _17; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ debug other => _18; // in scope 2 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
}
scope 3 {
- debug one => _22; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
- debug other => _23; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+ debug one => _22; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+ debug other => _23; // in scope 3 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
}
scope 4 {
- debug one => _27; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
- debug other => _28; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
+ debug one => _27; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ debug other => _28; // in scope 4 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
- StorageLive(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- StorageLive(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
- _5 = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:15: 22:16
- StorageLive(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
- _6 = _2; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:18: 22:23
- (_4.0: &ViewportPercentageLength) = move _5; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- (_4.1: &ViewportPercentageLength) = move _6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:24
- StorageDead(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:23: 22:24
- StorageDead(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:23: 22:24
- _11 = discriminant((*(_4.0: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-- switchInt(move _11) -> [0_isize: bb1, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageLive(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ _34 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageLive(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ _35 = Ne(_34, _11); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ StorageDead(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
-+ switchInt(move _35) -> [false: bb7, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:11: 23:18
+ StorageLive(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
+ StorageLive(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ StorageLive(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+ _5 = _1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:15: 21:16
+ StorageLive(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+ _6 = _2; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:18: 21:23
+ (_4.0: &ViewportPercentageLength) = move _5; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ (_4.1: &ViewportPercentageLength) = move _6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:14: 21:24
+ StorageDead(_6); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:23: 21:24
+ StorageDead(_5); // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:23: 21:24
+ _11 = discriminant((*(_4.0: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
+- switchInt(move _11) -> [0_isize: bb1, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageLive(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ _34 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageLive(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ _35 = Ne(_34, _11); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ StorageDead(_34); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
++ switchInt(move _35) -> [false: bb7, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:11: 22:18
}
bb1: {
-- _7 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-- switchInt(move _7) -> [0_isize: bb6, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+- _7 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
+- switchInt(move _7) -> [0_isize: bb6, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
- }
-
- bb2: {
-+ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
- StorageLive(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:25: 27:27
-- nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:21: 27:28
- discriminant(_0) = 1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:21: 27:28
- StorageDead(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:27: 27:28
- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
- return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:2: 29:2
++ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
+ StorageLive(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:25: 26:27
+- nop; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:21: 26:28
+ discriminant(_0) = 1; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:21: 26:28
+ StorageDead(_33); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:27: 26:28
+ StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
+ StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
+ return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:2: 28:2
}
- bb3: {
-- _8 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
-- switchInt(move _8) -> [1_isize: bb7, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:21: 24:30
+- _8 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
+- switchInt(move _8) -> [1_isize: bb7, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
- }
-
- bb4: {
-- _9 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
-- switchInt(move _9) -> [2_isize: bb8, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+- _9 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
+- switchInt(move _9) -> [2_isize: bb8, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:23: 24:34
- }
-
- bb5: {
-- _10 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
-- switchInt(move _10) -> [3_isize: bb9, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:23: 26:34
+- _10 = discriminant((*(_4.1: &ViewportPercentageLength))); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
+- switchInt(move _10) -> [3_isize: bb9, otherwise: bb2]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:23: 25:34
- }
-
- bb6: {
+ bb2: {
- StorageLive(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
- _12 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
- StorageLive(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
- _13 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
- StorageLive(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
- StorageLive(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
- _15 = _12; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
- StorageLive(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
- _16 = _13; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
- _14 = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
- StorageDead(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
- StorageDead(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
- ((_3 as Vw).0: f32) = move _14; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
- discriminant(_3) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
- StorageDead(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
- StorageDead(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
- StorageDead(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+ StorageLive(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+ _12 = (((*(_4.0: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:14: 22:17
+ StorageLive(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+ _13 = (((*(_4.1: &ViewportPercentageLength)) as Vw).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:24: 22:29
+ StorageLive(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+ StorageLive(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+ _15 = _12; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:41
+ StorageLive(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+ _16 = _13; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:44: 22:49
+ _14 = Add(move _15, move _16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:38: 22:49
+ StorageDead(_16); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
+ StorageDead(_15); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:48: 22:49
+ ((_3 as Vw).0: f32) = move _14; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
+ discriminant(_3) = 0; // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:35: 22:50
+ StorageDead(_14); // scope 1 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+ StorageDead(_13); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+ StorageDead(_12); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:49: 22:50
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
- bb7: {
+ bb3: {
- StorageLive(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
- _17 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:14: 24:17
- StorageLive(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
- _18 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:24: 24:29
- StorageLive(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
- StorageLive(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
- _20 = _17; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:41
- StorageLive(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
- _21 = _18; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:49
- _19 = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:38: 24:49
- StorageDead(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
- StorageDead(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:48: 24:49
- ((_3 as Vh).0: f32) = move _19; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
- discriminant(_3) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:35: 24:50
- StorageDead(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
- StorageDead(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
- StorageDead(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:49: 24:50
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+ StorageLive(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ _17 = (((*(_4.0: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:14: 23:17
+ StorageLive(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+ _18 = (((*(_4.1: &ViewportPercentageLength)) as Vh).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:24: 23:29
+ StorageLive(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+ StorageLive(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+ _20 = _17; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:41
+ StorageLive(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+ _21 = _18; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:44: 23:49
+ _19 = Add(move _20, move _21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:38: 23:49
+ StorageDead(_21); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
+ StorageDead(_20); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:48: 23:49
+ ((_3 as Vh).0: f32) = move _19; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
+ discriminant(_3) = 1; // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:35: 23:50
+ StorageDead(_19); // scope 2 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+ StorageDead(_18); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+ StorageDead(_17); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:49: 23:50
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
- bb8: {
+ bb4: {
- StorageLive(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
- _22 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
- StorageLive(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
- _23 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
- StorageLive(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
- StorageLive(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
- _25 = _22; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
- StorageLive(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
- _26 = _23; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
- _24 = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
- StorageDead(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
- StorageDead(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
- ((_3 as Vmin).0: f32) = move _24; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
- discriminant(_3) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
- StorageDead(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
- StorageDead(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
- StorageDead(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+ StorageLive(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+ _22 = (((*(_4.0: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:16: 24:19
+ StorageLive(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+ _23 = (((*(_4.1: &ViewportPercentageLength)) as Vmin).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:28: 24:33
+ StorageLive(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+ StorageLive(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+ _25 = _22; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:47
+ StorageLive(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+ _26 = _23; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:50: 24:55
+ _24 = Add(move _25, move _26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:44: 24:55
+ StorageDead(_26); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
+ StorageDead(_25); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:54: 24:55
+ ((_3 as Vmin).0: f32) = move _24; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
+ discriminant(_3) = 2; // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:39: 24:56
+ StorageDead(_24); // scope 3 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+ StorageDead(_23); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+ StorageDead(_22); // scope 0 at $DIR/early_otherwise_branch_68867.rs:24:55: 24:56
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
- bb9: {
+ bb5: {
- StorageLive(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
- _27 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:16: 26:19
- StorageLive(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
- _28 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:28: 26:33
- StorageLive(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
- StorageLive(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
- _30 = _27; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:47
- StorageLive(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
- _31 = _28; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:50: 26:55
- _29 = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:44: 26:55
- StorageDead(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
- StorageDead(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:54: 26:55
- ((_3 as Vmax).0: f32) = move _29; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
- discriminant(_3) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:39: 26:56
- StorageDead(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
- StorageDead(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
- StorageDead(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:26:55: 26:56
-- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
-+ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:8: 28:6
+ StorageLive(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ _27 = (((*(_4.0: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:16: 25:19
+ StorageLive(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+ _28 = (((*(_4.1: &ViewportPercentageLength)) as Vmax).0: f32); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:28: 25:33
+ StorageLive(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+ StorageLive(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+ _30 = _27; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:47
+ StorageLive(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+ _31 = _28; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:50: 25:55
+ _29 = Add(move _30, move _31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:44: 25:55
+ StorageDead(_31); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
+ StorageDead(_30); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:54: 25:55
+ ((_3 as Vmax).0: f32) = move _29; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
+ discriminant(_3) = 3; // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:39: 25:56
+ StorageDead(_29); // scope 4 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+ StorageDead(_28); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+ StorageDead(_27); // scope 0 at $DIR/early_otherwise_branch_68867.rs:25:55: 25:56
+- goto -> bb10; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
++ goto -> bb6; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:8: 27:6
}
- bb10: {
+ bb6: {
- ((_0 as Ok).0: ViewportPercentageLength) = move _3; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
- discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:5: 28:7
- StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:6: 28:7
- StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:1: 29:2
- return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:29:2: 29:2
+ ((_0 as Ok).0: ViewportPercentageLength) = move _3; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
+ discriminant(_0) = 0; // scope 0 at $DIR/early_otherwise_branch_68867.rs:21:5: 27:7
+ StorageDead(_3); // scope 0 at $DIR/early_otherwise_branch_68867.rs:27:6: 27:7
+ StorageDead(_4); // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:1: 28:2
+ return; // scope 0 at $DIR/early_otherwise_branch_68867.rs:28:2: 28:2
+ }
+
+ bb7: {
-+ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
-+ switchInt(_11) -> [0_isize: bb2, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:23:21: 23:30
++ StorageDead(_35); // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
++ switchInt(_11) -> [0_isize: bb2, 1_isize: bb3, 2_isize: bb4, 3_isize: bb5, otherwise: bb1]; // scope 0 at $DIR/early_otherwise_branch_68867.rs:22:21: 22:30
}
}
RUSTC_FLAGS_PRE = -C linker-flavor=ld -Z pre-link-arg=a -Z pre-link-args="b c" -Z pre-link-args="d e" -Z pre-link-arg=f
all:
- $(RUSTC) $(RUSTC_FLAGS) empty.rs 2>&1 | $(CGREP) '"a" "b" "c" "d" "e" "f" "g"'
+ $(RUSTC) $(RUSTC_FLAGS) empty.rs 2>&1 | $(CGREP) '"a" "b" "c" "d" "e" "f"'
$(RUSTC) $(RUSTC_FLAGS_PRE) empty.rs 2>&1 | $(CGREP) '"a" "b" "c" "d" "e" "f"'
-#![feature(link_args)]
-
-#[link_args = "g"]
-extern "C" {}
-
fn main() {}
SourceCodePro-LICENSE.txt
SourceCodePro-Regular.ttf.woff
SourceCodePro-Semibold.ttf.woff
-SourceSerifPro-Bold.ttf.woff
-SourceSerifPro-It.ttf.woff
-SourceSerifPro-LICENSE.md
-SourceSerifPro-Regular.ttf.woff
+SourceSerif4-Bold.ttf.woff
+SourceSerif4-It.ttf.woff
+SourceSerif4-LICENSE.md
+SourceSerif4-Regular.ttf.woff
[ -e $(INVOCATION_ONLY)/x/index.html ]
[ -e $(INVOCATION_ONLY)/theme-xxx.css ] # generated from z.css
! [ -e $(INVOCATION_ONLY)/storage-xxx.js ]
- ! [ -e $(INVOCATION_ONLY)/SourceSerifPro-It.ttf.woff ]
+ ! [ -e $(INVOCATION_ONLY)/SourceSerif4-It.ttf.woff ]
# FIXME: this probably shouldn't have a suffix
[ -e $(INVOCATION_ONLY)/y-xxx.css ]
toolchain-only:
$(RUSTDOC) -Z unstable-options --emit=toolchain-shared-resources --output $(TOOLCHAIN_ONLY) --resource-suffix=-xxx --extend-css z.css x.rs
[ -e $(TOOLCHAIN_ONLY)/storage-xxx.js ]
- ! [ -e $(TOOLCHAIN_ONLY)/SourceSerifPro-It.ttf.woff ]
+ ! [ -e $(TOOLCHAIN_ONLY)/SourceSerif4-It.ttf.woff ]
! [ -e $(TOOLCHAIN_ONLY)/search-index-xxx.js ]
! [ -e $(TOOLCHAIN_ONLY)/x/index.html ]
! [ -e $(TOOLCHAIN_ONLY)/theme.css ]
all-shared:
$(RUSTDOC) -Z unstable-options --emit=toolchain-shared-resources,unversioned-shared-resources --output $(ALL_SHARED) --resource-suffix=-xxx --extend-css z.css x.rs
[ -e $(ALL_SHARED)/storage-xxx.js ]
- [ -e $(ALL_SHARED)/SourceSerifPro-It.ttf.woff ]
+ [ -e $(ALL_SHARED)/SourceSerif4-It.ttf.woff ]
! [ -e $(ALL_SHARED)/search-index-xxx.js ]
! [ -e $(ALL_SHARED)/settings.html ]
! [ -e $(ALL_SHARED)/x ]
// Check to see if we can get parameters from an @argsfile file
//
-// ignore-tidy-linelength
// normalize-stderr-test: "os error \d+" -> "os error $$ERR"
// normalize-stderr-test: "commandline-argfile-missing.args:[^(]*" -> "commandline-argfile-missing.args: $$FILE_MISSING "
// compile-flags: --cfg cmdline_set @{{src-base}}/commandline-argfile-missing.args
-// ignore-tidy-linelength
// check-pass
// run-rustfix
-// ignore-tidy-linelength
// check-pass
// run-rustfix
warning: unknown `doc` attribute `spotlight`
- --> $DIR/doc-spotlight.rs:7:7
+ --> $DIR/doc-spotlight.rs:6:7
|
LL | #[doc(spotlight)]
| ^^^^^^^^^ help: use `notable_trait` instead
--- /dev/null
+#![deny(warnings)]
+
+//! Email me at <hello@localhost>.
+//~^ ERROR unknown disambiguator `hello`
+
+//! This should *not* warn: <hello@example.com>.
--- /dev/null
+error: unknown disambiguator `hello`
+ --> $DIR/email-address-localhost.rs:3:18
+ |
+LL | //! Email me at <hello@localhost>.
+ | ^^^^^
+ |
+note: the lint level is defined here
+ --> $DIR/email-address-localhost.rs:1:9
+ |
+LL | #![deny(warnings)]
+ | ^^^^^^^^
+ = note: `#[deny(rustdoc::broken_intra_doc_links)]` implied by `#[deny(warnings)]`
+
+error: aborting due to previous error
+
--- /dev/null
+// compile-flags:--theme {{src-base}}/invalid-theme-name.rs
+// error-pattern: invalid argument
+// error-pattern: must have a .css extension
--- /dev/null
+error: invalid argument: "$DIR/invalid-theme-name.rs"
+ |
+ = help: arguments to --theme must have a .css extension
+
#![crate_name = "foo"]
-// ignore-tidy-linelength
pub trait Expression {
type SqlType;
-// ignore-tidy-linelength
-
#![crate_type="lib"]
// @has assoc_types/trait.Index.html
-// ignore-tidy-linelength
// edition:2018
// @has async_fn/fn.foo.html '//pre[@class="rust fn"]' 'pub async fn foo() -> Option<Foo>'
pub async fn foo() -> Option<Foo> {
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
#![unstable(feature = "humans",
-// ignore-tidy-linelength
-
#![feature(const_generics)]
#![crate_name = "foo"]
-// ignore-tidy-linelength
-
#![feature(const_generics)]
#![crate_name = "foo"]
-// ignore-tidy-linelength
#![crate_name = "foo"]
// @has foo/type.CellIndex.html '//pre[@class="rust typedef"]' 'type CellIndex<const D: usize> = [i64; D];'
-// ignore-tidy-linelength
-
// #26207: Show all methods reachable via Deref impls, recursing through multiple dereferencing
// levels and across multiple crates.
-// ignore-tidy-linelength
-
// #26207: Show all methods reachable via Deref impls, recursing through multiple dereferencing
// levels if needed.
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
// @has 'foo/struct.Bar.html'
#![crate_name = "foo"]
-// ignore-tidy-linelength
pub trait Foo<T> {
fn foo() {}
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
#![feature(doc_cfg)]
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
#![crate_type = "lib"]
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
#![crate_type = "lib"]
// aux-build:impl_trait_aux.rs
// edition:2018
-// ignore-tidy-linelength
extern crate impl_trait_aux;
-// ignore-tidy-linelength
#![deny(intra_doc_link_resolution_failure)]
#![feature(associated_type_defaults)]
-// ignore-tidy-linelength
#![deny(intra_doc_link_resolution_failure)]
/// [`std::collections::BTreeMap::into_iter`]
-// ignore-tidy-linelength
// aux-build:macro_inner.rs
// aux-build:proc_macro.rs
// build-aux-docs
// aux-build:traits.rs
// build-aux-docs
-// ignore-tidy-line-length
#![deny(broken_intra_doc_links)]
extern crate inner;
-// ignore-tidy-linelength
#![deny(intra_doc_link_resolution_failure)]
// first try backticks
/// Trait: [`trait@Name`], fn: [`fn@Name`], [`Name`][`macro@Name`]
--- /dev/null
+//! Email me at <hello@example.com>.
+//! Email me at <hello-world@example.com>.
+//! Email me at <hello@localhost> (this warns but will still become a link).
+// @has email_address/index.html '//a[@href="mailto:hello@example.com"]' 'hello@example.com'
+// @has email_address/index.html '//a[@href="mailto:hello-world@example.com"]' 'hello-world@example.com'
+// @has email_address/index.html '//a[@href="mailto:hello@localhost"]' 'hello@localhost'
-// ignore-tidy-linelength
#![crate_name = "foo"]
#![feature(intra_doc_pointers)]
#![deny(rustdoc::broken_intra_doc_links)]
-// ignore-tidy-linelength
#![deny(broken_intra_doc_links)]
//! [i32::MAX]
// build-aux-docs
// ignore-cross-compile
// ignore-windows
-// ignore-tidy-linelength
#![deny(broken_intra_doc_links)]
#![feature(no_core, lang_items)]
#![no_core]
#![crate_type = "rlib"]
-// ignore-tidy-linelength
// @has prim_methods_local/index.html
// @has - '//*[@id="main"]//a[@href="https://doc.rust-lang.org/nightly/std/primitive.char.html"]' 'char'
#![deny(broken_intra_doc_links)]
-// ignore-tidy-linelength
// @has prim_methods/index.html
// @has - '//*[@id="main"]//a[@href="https://doc.rust-lang.org/nightly/std/primitive.char.html"]' 'char'
-// ignore-tidy-linelength
#![deny(broken_intra_doc_links)]
pub mod char {
#![deny(broken_intra_doc_links)]
-// ignore-tidy-linelength
// @has primitive_non_default_impl/fn.str_methods.html
/// [`str::trim`]
#![crate_name = "foo"]
-// ignore-tidy-linelength
// @has foo/index.html '//a/@href' '../foo/struct.Foo.html#method.new'
// @has foo/struct.Foo.html '//a/@href' '../foo/struct.Foo.html#method.new'
#![crate_name = "foo"]
-// ignore-tidy-linelength
pub struct MyStruct;
-// ignore-tidy-linelength
#![deny(broken_intra_doc_links)]
/// Link to [S::assoc_fn()]
#![deny(broken_intra_doc_links)]
#![crate_name = "foo"]
-// ignore-tidy-linelength
// @has foo/index.html
// @has - '//*[@id="main"]//a[@href="https://doc.rust-lang.org/nightly/std/primitive.bool.html"]' 'true'
-// ignore-tidy-linelength
-
use std::fmt;
// @has issue_29503/trait.MyTrait.html
-// ignore-tidy-linelength
-
// First a module with inner documentation
// @has issue_55364/subone/index.html
-// ignore-tidy-linelength
// aux-build:realcore.rs
// aux-build:real_gimli.rs
// compile-flags: --playground-url=https://example.com/ -Z unstable-options
-// ignore-tidy-linelength
#![crate_name = "foo"]
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
#![doc(html_playground_url = "https://www.example.com/")]
#![crate_name = "foo"]
-// ignore-tidy-linelength
// @has foo/struct.Foo.html '//*[@class="docblock"]/p/a[@href="https://doc.rust-lang.org/nightly/std/primitive.u32.html"]' 'u32'
// @has foo/struct.Foo.html '//*[@class="docblock"]/p/a[@href="https://doc.rust-lang.org/nightly/std/primitive.i64.html"]' 'i64'
-// ignore-tidy-linelength
-
#![crate_type="lib"]
pub mod internal {
-// ignore-tidy-linelength
-
#![crate_name = "foo"]
//! This is the "start" of the 'document'! How'd you know that "it's" the start?
// aux-build:src-links-external.rs
// build-aux-docs
// ignore-cross-compile
-// ignore-tidy-linelength
#![crate_name = "foo"]
--- /dev/null
+#![crate_name = "foo"]
+
+struct BodyId {
+ hir_id: usize,
+}
+
+// @has 'foo/fn.body_owner.html' '//*[@class="rust fn"]' 'pub fn body_owner(_: BodyId)'
+pub fn body_owner(BodyId { hir_id }: BodyId) {
+ // ...
+}
#![crate_name = "foo"]
-// ignore-tidy-linelength
// @has foo/index.html '//*[@class="docblock"]/p/a[@href="../foo/struct.Foo.html#structfield.bar"]' 'Foo::bar'
// @has foo/index.html '//*[@class="docblock"]/p/a[@href="../foo/union.Bar.html#structfield.foo"]' 'Bar::foo'
#![crate_name = "foo"]
-// ignore-tidy-linelength
pub trait Foo {
// @has foo/trait.Foo.html '//h3[@id="tymethod.foo"]//span[@class="docblock attributes"]' '#[must_use]'
//~^ ERROR invalid register `mm0`: MMX registers are not currently supported as operands
asm!("", in("k0") foo);
//~^ ERROR invalid register `k0`: the k0 AVX mask register cannot be used as an operand
+ asm!("", in("ah") foo);
+ //~^ ERROR invalid register `ah`: high byte registers cannot be used as an operand
// Explicit register conflicts
// (except in/lateout which don't conflict)
LL | asm!("", in("k0") foo);
| ^^^^^^^^^^^^
+error: invalid register `ah`: high byte registers cannot be used as an operand on x86_64
+ --> $DIR/bad-reg.rs:40:18
+ |
+LL | asm!("", in("ah") foo);
+ | ^^^^^^^^^^^^
+
error: register `al` conflicts with register `ax`
- --> $DIR/bad-reg.rs:44:33
+ --> $DIR/bad-reg.rs:46:33
|
LL | asm!("", in("eax") foo, in("al") bar);
| ------------- ^^^^^^^^^^^^ register `al`
| register `ax`
error: register `ax` conflicts with register `ax`
- --> $DIR/bad-reg.rs:46:33
+ --> $DIR/bad-reg.rs:48:33
|
LL | asm!("", in("rax") foo, out("rax") bar);
| ------------- ^^^^^^^^^^^^^^ register `ax`
| register `ax`
|
help: use `lateout` instead of `out` to avoid conflict
- --> $DIR/bad-reg.rs:46:18
+ --> $DIR/bad-reg.rs:48:18
|
LL | asm!("", in("rax") foo, out("rax") bar);
| ^^^^^^^^^^^^^
error: register `ymm0` conflicts with register `xmm0`
- --> $DIR/bad-reg.rs:49:34
+ --> $DIR/bad-reg.rs:51:34
|
LL | asm!("", in("xmm0") foo, in("ymm0") bar);
| -------------- ^^^^^^^^^^^^^^ register `ymm0`
| register `xmm0`
error: register `ymm0` conflicts with register `xmm0`
- --> $DIR/bad-reg.rs:51:34
+ --> $DIR/bad-reg.rs:53:34
|
LL | asm!("", in("xmm0") foo, out("ymm0") bar);
| -------------- ^^^^^^^^^^^^^^^ register `ymm0`
| register `xmm0`
|
help: use `lateout` instead of `out` to avoid conflict
- --> $DIR/bad-reg.rs:51:18
+ --> $DIR/bad-reg.rs:53:18
|
LL | asm!("", in("xmm0") foo, out("ymm0") bar);
| ^^^^^^^^^^^^^^
-error: aborting due to 18 previous errors
+error: aborting due to 19 previous errors
-// ignore-tidy-linelength
-
trait Foo {
type Item;
}
error[E0391]: cycle detected when computing the super traits of `Baz` with associated type name `Item`
- --> $DIR/ambiguous-associated-type2.rs:9:1
+ --> $DIR/ambiguous-associated-type2.rs:7:1
|
LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: ...which again requires computing the super traits of `Baz` with associated type name `Item`, completing the cycle
note: cycle used when computing the super traits of `Baz`
- --> $DIR/ambiguous-associated-type2.rs:9:1
+ --> $DIR/ambiguous-associated-type2.rs:7:1
|
LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/duplicate.rs:6:32
+ --> $DIR/duplicate.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/duplicate.rs:8:12
+ --> $DIR/duplicate.rs:6:12
|
LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:13:36
+ --> $DIR/duplicate.rs:11:36
|
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:15:36
+ --> $DIR/duplicate.rs:13:36
|
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:17:39
+ --> $DIR/duplicate.rs:15:39
|
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:19:45
+ --> $DIR/duplicate.rs:17:45
|
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:21:45
+ --> $DIR/duplicate.rs:19:45
|
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:23:48
+ --> $DIR/duplicate.rs:21:48
|
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:26:34
+ --> $DIR/duplicate.rs:24:34
|
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:28:34
+ --> $DIR/duplicate.rs:26:34
|
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:30:37
+ --> $DIR/duplicate.rs:28:37
|
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:32:43
+ --> $DIR/duplicate.rs:30:43
|
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:34:43
+ --> $DIR/duplicate.rs:32:43
|
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:36:46
+ --> $DIR/duplicate.rs:34:46
|
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:39:35
+ --> $DIR/duplicate.rs:37:35
|
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:41:35
+ --> $DIR/duplicate.rs:39:35
|
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:43:38
+ --> $DIR/duplicate.rs:41:38
|
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:45:44
+ --> $DIR/duplicate.rs:43:44
|
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:47:44
+ --> $DIR/duplicate.rs:45:44
|
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:49:47
+ --> $DIR/duplicate.rs:47:47
|
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:52:32
+ --> $DIR/duplicate.rs:50:32
|
LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:54:32
+ --> $DIR/duplicate.rs:52:32
|
LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:56:35
+ --> $DIR/duplicate.rs:54:35
|
LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:58:43
+ --> $DIR/duplicate.rs:56:43
|
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:60:43
+ --> $DIR/duplicate.rs:58:43
|
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:62:46
+ --> $DIR/duplicate.rs:60:46
|
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:68:40
+ --> $DIR/duplicate.rs:66:40
|
LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:70:40
+ --> $DIR/duplicate.rs:68:40
|
LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:72:43
+ --> $DIR/duplicate.rs:70:43
|
LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:75:39
+ --> $DIR/duplicate.rs:73:39
|
LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:77:39
+ --> $DIR/duplicate.rs:75:39
|
LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:79:42
+ --> $DIR/duplicate.rs:77:42
|
LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:81:40
+ --> $DIR/duplicate.rs:79:40
|
LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:83:40
+ --> $DIR/duplicate.rs:81:40
|
LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:85:43
+ --> $DIR/duplicate.rs:83:43
|
LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:88:46
+ --> $DIR/duplicate.rs:86:46
|
LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:90:46
+ --> $DIR/duplicate.rs:88:46
|
LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:92:49
+ --> $DIR/duplicate.rs:90:49
|
LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:95:35
+ --> $DIR/duplicate.rs:93:35
|
LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:97:35
+ --> $DIR/duplicate.rs:95:35
|
LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:99:38
+ --> $DIR/duplicate.rs:97:38
|
LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:101:44
+ --> $DIR/duplicate.rs:99:44
|
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:103:44
+ --> $DIR/duplicate.rs:101:44
|
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:105:47
+ --> $DIR/duplicate.rs:103:47
|
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:108:36
+ --> $DIR/duplicate.rs:106:36
|
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:110:36
+ --> $DIR/duplicate.rs:108:36
|
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:112:39
+ --> $DIR/duplicate.rs:110:39
|
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:114:40
+ --> $DIR/duplicate.rs:112:40
|
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:116:40
+ --> $DIR/duplicate.rs:114:40
|
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:118:43
+ --> $DIR/duplicate.rs:116:43
|
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:121:36
+ --> $DIR/duplicate.rs:119:36
|
LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:123:36
+ --> $DIR/duplicate.rs:121:36
|
LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:125:39
+ --> $DIR/duplicate.rs:123:39
|
LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:127:34
+ --> $DIR/duplicate.rs:125:34
|
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:129:34
+ --> $DIR/duplicate.rs:127:34
|
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:131:37
+ --> $DIR/duplicate.rs:129:37
|
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:133:45
+ --> $DIR/duplicate.rs:131:45
|
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:135:45
+ --> $DIR/duplicate.rs:133:45
|
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:137:48
+ --> $DIR/duplicate.rs:135:48
|
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:139:46
+ --> $DIR/duplicate.rs:137:46
|
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:139:46
+ --> $DIR/duplicate.rs:137:46
|
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:142:46
+ --> $DIR/duplicate.rs:140:46
|
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:142:46
+ --> $DIR/duplicate.rs:140:46
|
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:145:49
+ --> $DIR/duplicate.rs:143:49
|
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:145:49
+ --> $DIR/duplicate.rs:143:49
|
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:155:40
+ --> $DIR/duplicate.rs:153:40
|
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:157:44
+ --> $DIR/duplicate.rs:155:44
|
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:159:43
+ --> $DIR/duplicate.rs:157:43
|
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:148:43
+ --> $DIR/duplicate.rs:146:43
|
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:150:43
+ --> $DIR/duplicate.rs:148:43
|
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:152:46
+ --> $DIR/duplicate.rs:150:46
|
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
| ------------- ^^^^^^^^^^^^^ re-bound here
warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/duplicate.rs:8:12
+ --> $DIR/duplicate.rs:6:12
|
LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:13:36
+ --> $DIR/duplicate.rs:11:36
|
LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:15:36
+ --> $DIR/duplicate.rs:13:36
|
LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:17:39
+ --> $DIR/duplicate.rs:15:39
|
LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:19:45
+ --> $DIR/duplicate.rs:17:45
|
LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:21:45
+ --> $DIR/duplicate.rs:19:45
|
LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:23:48
+ --> $DIR/duplicate.rs:21:48
|
LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:26:34
+ --> $DIR/duplicate.rs:24:34
|
LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:28:34
+ --> $DIR/duplicate.rs:26:34
|
LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:30:37
+ --> $DIR/duplicate.rs:28:37
|
LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:32:43
+ --> $DIR/duplicate.rs:30:43
|
LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:34:43
+ --> $DIR/duplicate.rs:32:43
|
LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:36:46
+ --> $DIR/duplicate.rs:34:46
|
LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:39:35
+ --> $DIR/duplicate.rs:37:35
|
LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:41:35
+ --> $DIR/duplicate.rs:39:35
|
LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:43:38
+ --> $DIR/duplicate.rs:41:38
|
LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:45:44
+ --> $DIR/duplicate.rs:43:44
|
LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:47:44
+ --> $DIR/duplicate.rs:45:44
|
LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:49:47
+ --> $DIR/duplicate.rs:47:47
|
LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:52:32
+ --> $DIR/duplicate.rs:50:32
|
LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:54:32
+ --> $DIR/duplicate.rs:52:32
|
LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:56:35
+ --> $DIR/duplicate.rs:54:35
|
LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:58:43
+ --> $DIR/duplicate.rs:56:43
|
LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:60:43
+ --> $DIR/duplicate.rs:58:43
|
LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:62:46
+ --> $DIR/duplicate.rs:60:46
|
LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:68:40
+ --> $DIR/duplicate.rs:66:40
|
LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:70:40
+ --> $DIR/duplicate.rs:68:40
|
LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:72:43
+ --> $DIR/duplicate.rs:70:43
|
LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:75:39
+ --> $DIR/duplicate.rs:73:39
|
LL | const CIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:77:39
+ --> $DIR/duplicate.rs:75:39
|
LL | const CIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:79:42
+ --> $DIR/duplicate.rs:77:42
|
LL | const CIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:81:40
+ --> $DIR/duplicate.rs:79:40
|
LL | static SIT1: impl Iterator<Item: Copy, Item: Send> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:83:40
+ --> $DIR/duplicate.rs:81:40
|
LL | static SIT2: impl Iterator<Item: Copy, Item: Copy> = iter::empty();
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:85:43
+ --> $DIR/duplicate.rs:83:43
|
LL | static SIT3: impl Iterator<Item: 'static, Item: 'static> = iter::empty();
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:88:46
+ --> $DIR/duplicate.rs:86:46
|
LL | fn lit1() { let _: impl Iterator<Item: Copy, Item: Send> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:90:46
+ --> $DIR/duplicate.rs:88:46
|
LL | fn lit2() { let _: impl Iterator<Item: Copy, Item: Copy> = iter::empty(); }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:92:49
+ --> $DIR/duplicate.rs:90:49
|
LL | fn lit3() { let _: impl Iterator<Item: 'static, Item: 'static> = iter::empty(); }
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:95:35
+ --> $DIR/duplicate.rs:93:35
|
LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:97:35
+ --> $DIR/duplicate.rs:95:35
|
LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:99:38
+ --> $DIR/duplicate.rs:97:38
|
LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:101:44
+ --> $DIR/duplicate.rs:99:44
|
LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:103:44
+ --> $DIR/duplicate.rs:101:44
|
LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:105:47
+ --> $DIR/duplicate.rs:103:47
|
LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:108:36
+ --> $DIR/duplicate.rs:106:36
|
LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:110:36
+ --> $DIR/duplicate.rs:108:36
|
LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:112:39
+ --> $DIR/duplicate.rs:110:39
|
LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:114:40
+ --> $DIR/duplicate.rs:112:40
|
LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:116:40
+ --> $DIR/duplicate.rs:114:40
|
LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:118:43
+ --> $DIR/duplicate.rs:116:43
|
LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:121:36
+ --> $DIR/duplicate.rs:119:36
|
LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:123:36
+ --> $DIR/duplicate.rs:121:36
|
LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:125:39
+ --> $DIR/duplicate.rs:123:39
|
LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:127:34
+ --> $DIR/duplicate.rs:125:34
|
LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:129:34
+ --> $DIR/duplicate.rs:127:34
|
LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:131:37
+ --> $DIR/duplicate.rs:129:37
|
LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:133:45
+ --> $DIR/duplicate.rs:131:45
|
LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:135:45
+ --> $DIR/duplicate.rs:133:45
|
LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:137:48
+ --> $DIR/duplicate.rs:135:48
|
LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:139:46
+ --> $DIR/duplicate.rs:137:46
|
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:139:46
+ --> $DIR/duplicate.rs:137:46
|
LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:142:46
+ --> $DIR/duplicate.rs:140:46
|
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:142:46
+ --> $DIR/duplicate.rs:140:46
|
LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:145:49
+ --> $DIR/duplicate.rs:143:49
|
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:145:49
+ --> $DIR/duplicate.rs:143:49
|
LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:155:40
+ --> $DIR/duplicate.rs:153:40
|
LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:157:44
+ --> $DIR/duplicate.rs:155:44
|
LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:159:43
+ --> $DIR/duplicate.rs:157:43
|
LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
| ------------- ^^^^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:148:43
+ --> $DIR/duplicate.rs:146:43
|
LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:150:43
+ --> $DIR/duplicate.rs:148:43
|
LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
| ---------- ^^^^^^^^^^ re-bound here
| `Item` bound here first
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
- --> $DIR/duplicate.rs:152:46
+ --> $DIR/duplicate.rs:150:46
|
LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
| ------------- ^^^^^^^^^^^^^ re-bound here
-// ignore-tidy-linelength
-
#![feature(associated_type_bounds)]
// revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)]
-// ignore-tidy-linelength
// edition:2018
// This test checks that `Self` is prohibited as a return type. See #61949 for context.
error[E0760]: `async fn` return type cannot contain a projection or `Self` that references lifetimes from a parent scope
- --> $DIR/issue-61949-self-return-type.rs:11:40
+ --> $DIR/issue-61949-self-return-type.rs:10:40
|
LL | pub async fn new(_bar: &'a i32) -> Self {
| ^^^^ help: consider spelling out the type instead: `Foo<'a>`
-// ignore-tidy-linelength
-
pub struct Foo {
x: u32
}
error[E0499]: cannot borrow `x` as mutable more than once at a time
- --> $DIR/borrowck-describe-lvalue.rs:256:13
+ --> $DIR/borrowck-describe-lvalue.rs:254:13
|
LL | let y = &mut x;
| ------ first mutable borrow occurs here
| ------ first borrow later used here
error[E0499]: cannot borrow `x` as mutable more than once at a time
- --> $DIR/borrowck-describe-lvalue.rs:266:20
+ --> $DIR/borrowck-describe-lvalue.rs:264:20
|
LL | let y = &mut x;
| ------ first mutable borrow occurs here
| ------ first borrow later used here
error: captured variable cannot escape `FnMut` closure body
- --> $DIR/borrowck-describe-lvalue.rs:264:16
+ --> $DIR/borrowck-describe-lvalue.rs:262:16
|
LL | let mut x = 0;
| ----- variable defined here
= note: ...therefore, they cannot allow references to captured variables to escape
error[E0503]: cannot use `f.x` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:39:9
+ --> $DIR/borrowck-describe-lvalue.rs:37:9
|
LL | let x = f.x();
| - borrow of `f` occurs here
| - borrow later used here
error[E0503]: cannot use `g.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:46:9
+ --> $DIR/borrowck-describe-lvalue.rs:44:9
|
LL | let x = g.x();
| - borrow of `g` occurs here
| - borrow later used here
error[E0503]: cannot use `h.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:53:9
+ --> $DIR/borrowck-describe-lvalue.rs:51:9
|
LL | let x = &mut h.0;
| -------- borrow of `h.0` occurs here
| - borrow later used here
error[E0503]: cannot use `e.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:61:20
+ --> $DIR/borrowck-describe-lvalue.rs:59:20
|
LL | let x = e.x();
| - borrow of `e` occurs here
| - borrow later used here
error[E0503]: cannot use `u.a` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:69:9
+ --> $DIR/borrowck-describe-lvalue.rs:67:9
|
LL | let x = &mut u.a;
| -------- borrow of `u.a` occurs here
| - borrow later used here
error[E0503]: cannot use `f.x` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:76:9
+ --> $DIR/borrowck-describe-lvalue.rs:74:9
|
LL | let x = f.x();
| - borrow of `*f` occurs here
| - borrow later used here
error[E0503]: cannot use `g.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:83:9
+ --> $DIR/borrowck-describe-lvalue.rs:81:9
|
LL | let x = g.x();
| - borrow of `*g` occurs here
| - borrow later used here
error[E0503]: cannot use `h.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:90:9
+ --> $DIR/borrowck-describe-lvalue.rs:88:9
|
LL | let x = &mut h.0;
| -------- borrow of `h.0` occurs here
| - borrow later used here
error[E0503]: cannot use `e.0` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:98:20
+ --> $DIR/borrowck-describe-lvalue.rs:96:20
|
LL | let x = e.x();
| - borrow of `*e` occurs here
| - borrow later used here
error[E0503]: cannot use `u.a` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:107:9
+ --> $DIR/borrowck-describe-lvalue.rs:105:9
|
LL | let x = &mut u.a;
| -------- borrow of `u.a` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:115:15
+ --> $DIR/borrowck-describe-lvalue.rs:113:15
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:120:18
+ --> $DIR/borrowck-describe-lvalue.rs:118:18
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:125:25
+ --> $DIR/borrowck-describe-lvalue.rs:123:25
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:130:28
+ --> $DIR/borrowck-describe-lvalue.rs:128:28
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:141:15
+ --> $DIR/borrowck-describe-lvalue.rs:139:15
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:146:18
+ --> $DIR/borrowck-describe-lvalue.rs:144:18
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:151:15
+ --> $DIR/borrowck-describe-lvalue.rs:149:15
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:156:18
+ --> $DIR/borrowck-describe-lvalue.rs:154:18
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `e` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:169:13
+ --> $DIR/borrowck-describe-lvalue.rs:167:13
|
LL | let x = &mut e;
| ------ borrow of `e` occurs here
| - borrow later used here
error[E0502]: cannot borrow `e.0` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:169:18
+ --> $DIR/borrowck-describe-lvalue.rs:167:18
|
LL | let x = &mut e;
| ------ mutable borrow occurs here
| - mutable borrow later used here
error[E0502]: cannot borrow `e.x` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:173:23
+ --> $DIR/borrowck-describe-lvalue.rs:171:23
|
LL | let x = &mut e;
| ------ mutable borrow occurs here
| - mutable borrow later used here
error[E0502]: cannot borrow `s.y.0` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:186:22
+ --> $DIR/borrowck-describe-lvalue.rs:184:22
|
LL | let x = &mut s;
| ------ mutable borrow occurs here
| - mutable borrow later used here
error[E0502]: cannot borrow `s.x.y` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:192:28
+ --> $DIR/borrowck-describe-lvalue.rs:190:28
|
LL | let x = &mut s;
| ------ mutable borrow occurs here
| - mutable borrow later used here
error[E0503]: cannot use `*v` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:234:9
+ --> $DIR/borrowck-describe-lvalue.rs:232:9
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0503]: cannot use `v[_].y` because it was mutably borrowed
- --> $DIR/borrowck-describe-lvalue.rs:234:9
+ --> $DIR/borrowck-describe-lvalue.rs:232:9
|
LL | let x = &mut v;
| ------ borrow of `v` occurs here
| - borrow later used here
error[E0502]: cannot borrow `v[..].x` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:245:24
+ --> $DIR/borrowck-describe-lvalue.rs:243:24
|
LL | let x = &mut v;
| ------ mutable borrow occurs here
| - mutable borrow later used here
error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:208:29
+ --> $DIR/borrowck-describe-lvalue.rs:206:29
|
LL | let x = &mut block;
| ---------- mutable borrow occurs here
| - mutable borrow later used here
error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-describe-lvalue.rs:223:33
+ --> $DIR/borrowck-describe-lvalue.rs:221:33
|
LL | let x = &mut block;
| ---------- mutable borrow occurs here
| - mutable borrow later used here
error[E0382]: use of moved value: `x`
- --> $DIR/borrowck-describe-lvalue.rs:276:22
+ --> $DIR/borrowck-describe-lvalue.rs:274:22
|
LL | drop(x);
| - value moved here
-// ignore-tidy-linelength
-
#[derive(Clone, Copy)]
union U {
a: u8,
error[E0502]: cannot borrow `u.a` as mutable because it is also borrowed as immutable
- --> $DIR/borrowck-union-borrow.rs:25:23
+ --> $DIR/borrowck-union-borrow.rs:23:23
|
LL | let ra = &u.a;
| ---- immutable borrow occurs here
| -- immutable borrow later used here
error[E0506]: cannot assign to `u.a` because it is borrowed
- --> $DIR/borrowck-union-borrow.rs:30:13
+ --> $DIR/borrowck-union-borrow.rs:28:13
|
LL | let ra = &u.a;
| ---- borrow of `u.a` occurs here
| -- borrow later used here
error[E0502]: cannot borrow `u` (via `u.b`) as mutable because it is also borrowed as immutable (via `u.a`)
- --> $DIR/borrowck-union-borrow.rs:46:23
+ --> $DIR/borrowck-union-borrow.rs:44:23
|
LL | let ra = &u.a;
| ---- immutable borrow occurs here (via `u.a`)
= note: `u.b` is a field of the union `U`, so it overlaps the field `u.a`
error[E0506]: cannot assign to `u.b` because it is borrowed
- --> $DIR/borrowck-union-borrow.rs:51:13
+ --> $DIR/borrowck-union-borrow.rs:49:13
|
LL | let ra = &u.a;
| ---- borrow of `u.b` occurs here
| -- borrow later used here
error[E0502]: cannot borrow `u.a` as immutable because it is also borrowed as mutable
- --> $DIR/borrowck-union-borrow.rs:57:22
+ --> $DIR/borrowck-union-borrow.rs:55:22
|
LL | let rma = &mut u.a;
| -------- mutable borrow occurs here
| --- mutable borrow later used here
error[E0503]: cannot use `u.a` because it was mutably borrowed
- --> $DIR/borrowck-union-borrow.rs:62:21
+ --> $DIR/borrowck-union-borrow.rs:60:21
|
LL | let ra = &mut u.a;
| -------- borrow of `u.a` occurs here
| -- borrow later used here
error[E0499]: cannot borrow `u.a` as mutable more than once at a time
- --> $DIR/borrowck-union-borrow.rs:67:24
+ --> $DIR/borrowck-union-borrow.rs:65:24
|
LL | let rma = &mut u.a;
| -------- first mutable borrow occurs here
| --- first borrow later used here
error[E0506]: cannot assign to `u.a` because it is borrowed
- --> $DIR/borrowck-union-borrow.rs:72:13
+ --> $DIR/borrowck-union-borrow.rs:70:13
|
LL | let rma = &mut u.a;
| -------- borrow of `u.a` occurs here
| --- borrow later used here
error[E0502]: cannot borrow `u` (via `u.b`) as immutable because it is also borrowed as mutable (via `u.a`)
- --> $DIR/borrowck-union-borrow.rs:78:22
+ --> $DIR/borrowck-union-borrow.rs:76:22
|
LL | let rma = &mut u.a;
| -------- mutable borrow occurs here (via `u.a`)
= note: `u.b` is a field of the union `U`, so it overlaps the field `u.a`
error[E0503]: cannot use `u.b` because it was mutably borrowed
- --> $DIR/borrowck-union-borrow.rs:83:21
+ --> $DIR/borrowck-union-borrow.rs:81:21
|
LL | let ra = &mut u.a;
| -------- borrow of `u.a` occurs here
| -- borrow later used here
error[E0499]: cannot borrow `u` (via `u.b`) as mutable more than once at a time
- --> $DIR/borrowck-union-borrow.rs:89:24
+ --> $DIR/borrowck-union-borrow.rs:87:24
|
LL | let rma = &mut u.a;
| -------- first mutable borrow occurs here (via `u.a`)
= note: `u.b` is a field of the union `U`, so it overlaps the field `u.a`
error[E0506]: cannot assign to `u.b` because it is borrowed
- --> $DIR/borrowck-union-borrow.rs:94:13
+ --> $DIR/borrowck-union-borrow.rs:92:13
|
LL | let rma = &mut u.a;
| -------- borrow of `u.b` occurs here
error[E0503]: cannot use `i` because it was mutably borrowed
- --> $DIR/two-phase-allow-access-during-reservation.rs:30:19
+ --> $DIR/two-phase-allow-access-during-reservation.rs:28:19
|
LL | /*1*/ let p = &mut i; // (reservation of `i` starts here)
| ------ borrow of `i` occurs here
| ------- borrow later used here
error[E0503]: cannot use `i` because it was mutably borrowed
- --> $DIR/two-phase-allow-access-during-reservation.rs:35:19
+ --> $DIR/two-phase-allow-access-during-reservation.rs:33:19
|
LL | /*1*/ let p = &mut i; // (reservation of `i` starts here)
| ------ borrow of `i` occurs here
-// ignore-tidy-linelength
-
// revisions: nll_target
// The following revisions are disabled due to missing support for two_phase_beyond_autoref
error[E0502]: cannot borrow `vec` as mutable because it is also borrowed as immutable
- --> $DIR/two-phase-reservation-sharing-interference.rs:36:17
+ --> $DIR/two-phase-reservation-sharing-interference.rs:34:17
|
LL | let shared = &vec;
| ---- immutable borrow occurs here
-// ignore-tidy-linelength
-
// revisions: nll_target
// The following revisions are disabled due to missing support from two-phase beyond autorefs
// Check to see if we can get parameters from an @argsfile file
//
-// ignore-tidy-linelength
// normalize-stderr-test: "os error \d+" -> "os error $$ERR"
// normalize-stderr-test: "commandline-argfile-missing.args:[^(]*" -> "commandline-argfile-missing.args: $$FILE_MISSING "
// compile-flags: --cfg cmdline_set @{{src-base}}/commandline-argfile-missing.args
-// ignore-tidy-linelength
-
const bad : u32 = {
{
5;
error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants
- --> $DIR/issue-32829-2.rs:12:9
+ --> $DIR/issue-32829-2.rs:10:9
|
LL | invalid();
| ^^^^^^^^^
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
- --> $DIR/issue-32829-2.rs:34:9
+ --> $DIR/issue-32829-2.rs:32:9
|
LL | invalid();
| ^^^^^^^^^
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
- --> $DIR/issue-32829-2.rs:56:9
+ --> $DIR/issue-32829-2.rs:54:9
|
LL | invalid();
| ^^^^^^^^^
-// ignore-tidy-linelength
#![feature(const_ptr_offset)]
use std::ptr;
| |
| overflowing in-bounds pointer arithmetic
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `BEFORE_START` at $DIR/offset_ub.rs:7:46
+ | inside `BEFORE_START` at $DIR/offset_ub.rs:6:46
|
- ::: $DIR/offset_ub.rs:7:1
+ ::: $DIR/offset_ub.rs:6:1
|
LL | pub const BEFORE_START: *const u8 = unsafe { (&0u8 as *const u8).offset(-1) };
| ------------------------------------------------------------------------------
| |
| inbounds test failed: pointer must be in-bounds at offset 2, but is outside bounds of allocN which has size 1
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `AFTER_END` at $DIR/offset_ub.rs:8:43
+ | inside `AFTER_END` at $DIR/offset_ub.rs:7:43
|
- ::: $DIR/offset_ub.rs:8:1
+ ::: $DIR/offset_ub.rs:7:1
|
LL | pub const AFTER_END: *const u8 = unsafe { (&0u8 as *const u8).offset(2) };
| --------------------------------------------------------------------------
| |
| inbounds test failed: pointer must be in-bounds at offset 101, but is outside bounds of allocN which has size 100
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `AFTER_ARRAY` at $DIR/offset_ub.rs:9:45
+ | inside `AFTER_ARRAY` at $DIR/offset_ub.rs:8:45
|
- ::: $DIR/offset_ub.rs:9:1
+ ::: $DIR/offset_ub.rs:8:1
|
LL | pub const AFTER_ARRAY: *const u8 = unsafe { [0u8; 100].as_ptr().offset(101) };
| ------------------------------------------------------------------------------
| |
| overflowing in-bounds pointer arithmetic
| inside `ptr::const_ptr::<impl *const u16>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `OVERFLOW` at $DIR/offset_ub.rs:11:43
+ | inside `OVERFLOW` at $DIR/offset_ub.rs:10:43
|
- ::: $DIR/offset_ub.rs:11:1
+ ::: $DIR/offset_ub.rs:10:1
|
LL | pub const OVERFLOW: *const u16 = unsafe { [0u16; 1].as_ptr().offset(isize::MAX) };
| ----------------------------------------------------------------------------------
| |
| overflowing in-bounds pointer arithmetic
| inside `ptr::const_ptr::<impl *const u16>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `UNDERFLOW` at $DIR/offset_ub.rs:12:44
+ | inside `UNDERFLOW` at $DIR/offset_ub.rs:11:44
|
- ::: $DIR/offset_ub.rs:12:1
+ ::: $DIR/offset_ub.rs:11:1
|
LL | pub const UNDERFLOW: *const u16 = unsafe { [0u16; 1].as_ptr().offset(isize::MIN) };
| -----------------------------------------------------------------------------------
| |
| overflowing in-bounds pointer arithmetic
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `OVERFLOW_ADDRESS_SPACE` at $DIR/offset_ub.rs:13:56
+ | inside `OVERFLOW_ADDRESS_SPACE` at $DIR/offset_ub.rs:12:56
|
- ::: $DIR/offset_ub.rs:13:1
+ ::: $DIR/offset_ub.rs:12:1
|
LL | pub const OVERFLOW_ADDRESS_SPACE: *const u8 = unsafe { (usize::MAX as *const u8).offset(2) };
| ---------------------------------------------------------------------------------------------
| |
| overflowing in-bounds pointer arithmetic
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `UNDERFLOW_ADDRESS_SPACE` at $DIR/offset_ub.rs:14:57
+ | inside `UNDERFLOW_ADDRESS_SPACE` at $DIR/offset_ub.rs:13:57
|
- ::: $DIR/offset_ub.rs:14:1
+ ::: $DIR/offset_ub.rs:13:1
|
LL | pub const UNDERFLOW_ADDRESS_SPACE: *const u8 = unsafe { (1 as *const u8).offset(-2) };
| --------------------------------------------------------------------------------------
| |
| inbounds test failed: pointer must be in-bounds at offset 1, but is outside bounds of allocN which has size 0
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `ZERO_SIZED_ALLOC` at $DIR/offset_ub.rs:16:50
+ | inside `ZERO_SIZED_ALLOC` at $DIR/offset_ub.rs:15:50
|
- ::: $DIR/offset_ub.rs:16:1
+ ::: $DIR/offset_ub.rs:15:1
|
LL | pub const ZERO_SIZED_ALLOC: *const u8 = unsafe { [0u8; 0].as_ptr().offset(1) };
| -------------------------------------------------------------------------------
| |
| unable to turn bytes into a pointer
| inside `ptr::mut_ptr::<impl *mut u8>::offset` at $SRC_DIR/core/src/ptr/mut_ptr.rs:LL:COL
- | inside `DANGLING` at $DIR/offset_ub.rs:17:42
+ | inside `DANGLING` at $DIR/offset_ub.rs:16:42
|
- ::: $DIR/offset_ub.rs:17:1
+ ::: $DIR/offset_ub.rs:16:1
|
LL | pub const DANGLING: *const u8 = unsafe { ptr::NonNull::<u8>::dangling().as_ptr().offset(4) };
| ---------------------------------------------------------------------------------------------
| |
| inbounds test failed: 0x0 is not a valid pointer
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `NULL_OFFSET_ZERO` at $DIR/offset_ub.rs:20:50
+ | inside `NULL_OFFSET_ZERO` at $DIR/offset_ub.rs:19:50
|
- ::: $DIR/offset_ub.rs:20:1
+ ::: $DIR/offset_ub.rs:19:1
|
LL | pub const NULL_OFFSET_ZERO: *const u8 = unsafe { ptr::null::<u8>().offset(0) };
| -------------------------------------------------------------------------------
| |
| unable to turn bytes into a pointer
| inside `ptr::const_ptr::<impl *const u8>::offset` at $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
- | inside `UNDERFLOW_ABS` at $DIR/offset_ub.rs:23:47
+ | inside `UNDERFLOW_ABS` at $DIR/offset_ub.rs:22:47
|
- ::: $DIR/offset_ub.rs:23:1
+ ::: $DIR/offset_ub.rs:22:1
|
LL | pub const UNDERFLOW_ABS: *const u8 = unsafe { (usize::MAX as *const u8).offset(isize::MIN) };
| ---------------------------------------------------------------------------------------------
// aux-build:deprecation-lint.rs
-// ignore-tidy-linelength
#![deny(deprecated)]
#![allow(warnings)]
error: use of deprecated function `deprecation_lint::deprecated`: text
- --> $DIR/deprecation-lint.rs:17:9
+ --> $DIR/deprecation-lint.rs:16:9
|
LL | deprecated();
| ^^^^^^^^^^
|
note: the lint level is defined here
- --> $DIR/deprecation-lint.rs:4:9
+ --> $DIR/deprecation-lint.rs:3:9
|
LL | #![deny(deprecated)]
| ^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:22:9
+ --> $DIR/deprecation-lint.rs:21:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:24:9
+ --> $DIR/deprecation-lint.rs:23:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `deprecation_lint::deprecated_text`: text
- --> $DIR/deprecation-lint.rs:26:9
+ --> $DIR/deprecation-lint.rs:25:9
|
LL | deprecated_text();
| ^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:31:9
+ --> $DIR/deprecation-lint.rs:30:9
|
LL | ... Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:33:9
+ --> $DIR/deprecation-lint.rs:32:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::DeprecatedStruct`: text
- --> $DIR/deprecation-lint.rs:35:17
+ --> $DIR/deprecation-lint.rs:34:17
|
LL | let _ = DeprecatedStruct {
| ^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::DeprecatedUnitStruct`: text
- --> $DIR/deprecation-lint.rs:39:17
+ --> $DIR/deprecation-lint.rs:38:17
|
LL | let _ = DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^
error: use of deprecated variant `deprecation_lint::Enum::DeprecatedVariant`: text
- --> $DIR/deprecation-lint.rs:41:17
+ --> $DIR/deprecation-lint.rs:40:17
|
LL | let _ = Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::DeprecatedTupleStruct`: text
- --> $DIR/deprecation-lint.rs:43:17
+ --> $DIR/deprecation-lint.rs:42:17
|
LL | let _ = DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::nested::DeprecatedStruct`: text
- --> $DIR/deprecation-lint.rs:45:17
+ --> $DIR/deprecation-lint.rs:44:17
|
LL | let _ = nested::DeprecatedStruct {
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::nested::DeprecatedUnitStruct`: text
- --> $DIR/deprecation-lint.rs:49:17
+ --> $DIR/deprecation-lint.rs:48:17
|
LL | let _ = nested::DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated variant `deprecation_lint::nested::Enum::DeprecatedVariant`: text
- --> $DIR/deprecation-lint.rs:51:17
+ --> $DIR/deprecation-lint.rs:50:17
|
LL | ... let _ = nested::Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::nested::DeprecatedTupleStruct`: text
- --> $DIR/deprecation-lint.rs:53:17
+ --> $DIR/deprecation-lint.rs:52:17
|
LL | ... let _ = nested::DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `deprecation_lint::deprecated_text`: text
- --> $DIR/deprecation-lint.rs:60:25
+ --> $DIR/deprecation-lint.rs:59:25
|
LL | macro_test_arg!(deprecated_text());
| ^^^^^^^^^^^^^^^
error: use of deprecated function `deprecation_lint::deprecated_text`: text
- --> $DIR/deprecation-lint.rs:61:41
+ --> $DIR/deprecation-lint.rs:60:41
|
LL | macro_test_arg!(macro_test_arg!(deprecated_text()));
| ^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:66:9
+ --> $DIR/deprecation-lint.rs:65:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:68:9
+ --> $DIR/deprecation-lint.rs:67:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:70:9
+ --> $DIR/deprecation-lint.rs:69:9
|
LL | ... Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:72:9
+ --> $DIR/deprecation-lint.rs:71:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated trait `deprecation_lint::DeprecatedTrait`: text
- --> $DIR/deprecation-lint.rs:82:10
+ --> $DIR/deprecation-lint.rs:81:10
|
LL | impl DeprecatedTrait for S {}
| ^^^^^^^^^^^^^^^
error: use of deprecated trait `deprecation_lint::DeprecatedTrait`: text
- --> $DIR/deprecation-lint.rs:83:24
+ --> $DIR/deprecation-lint.rs:82:24
|
LL | trait LocalTrait : DeprecatedTrait { }
| ^^^^^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated`: text
- --> $DIR/deprecation-lint.rs:114:17
+ --> $DIR/deprecation-lint.rs:113:17
|
LL | let x = Deprecated {
| ^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated`: text
- --> $DIR/deprecation-lint.rs:123:13
+ --> $DIR/deprecation-lint.rs:122:13
|
LL | let Deprecated {
| ^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated`: text
- --> $DIR/deprecation-lint.rs:129:13
+ --> $DIR/deprecation-lint.rs:128:13
|
LL | let Deprecated
| ^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:133:17
+ --> $DIR/deprecation-lint.rs:132:17
|
LL | let x = Deprecated2(1, 2, 3);
| ^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:143:13
+ --> $DIR/deprecation-lint.rs:142:13
|
LL | let Deprecated2
| ^^^^^^^^^^^
error: use of deprecated struct `deprecation_lint::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:152:13
+ --> $DIR/deprecation-lint.rs:151:13
|
LL | let Deprecated2
| ^^^^^^^^^^^
error: use of deprecated function `deprecation_lint::deprecated_mod::deprecated`: text
- --> $DIR/deprecation-lint.rs:163:9
+ --> $DIR/deprecation-lint.rs:162:9
|
LL | deprecated_mod::deprecated();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `this_crate::deprecated`: text
- --> $DIR/deprecation-lint.rs:246:9
+ --> $DIR/deprecation-lint.rs:245:9
|
LL | deprecated();
| ^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:251:9
+ --> $DIR/deprecation-lint.rs:250:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:253:9
+ --> $DIR/deprecation-lint.rs:252:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `this_crate::deprecated_text`: text
- --> $DIR/deprecation-lint.rs:255:9
+ --> $DIR/deprecation-lint.rs:254:9
|
LL | deprecated_text();
| ^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:260:9
+ --> $DIR/deprecation-lint.rs:259:9
|
LL | Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:262:9
+ --> $DIR/deprecation-lint.rs:261:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `this_crate::deprecated_future`: text
- --> $DIR/deprecation-lint.rs:265:9
+ --> $DIR/deprecation-lint.rs:264:9
|
LL | deprecated_future();
| ^^^^^^^^^^^^^^^^^
error: use of deprecated function `this_crate::deprecated_future_text`: text
- --> $DIR/deprecation-lint.rs:266:9
+ --> $DIR/deprecation-lint.rs:265:9
|
LL | deprecated_future_text();
| ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `this_crate::DeprecatedStruct`: text
- --> $DIR/deprecation-lint.rs:268:17
+ --> $DIR/deprecation-lint.rs:267:17
|
LL | let _ = DeprecatedStruct {
| ^^^^^^^^^^^^^^^^
error: use of deprecated unit struct `this_crate::DeprecatedUnitStruct`: text
- --> $DIR/deprecation-lint.rs:273:17
+ --> $DIR/deprecation-lint.rs:272:17
|
LL | let _ = DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^
error: use of deprecated unit variant `this_crate::Enum::DeprecatedVariant`: text
- --> $DIR/deprecation-lint.rs:275:17
+ --> $DIR/deprecation-lint.rs:274:17
|
LL | let _ = Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated tuple struct `this_crate::DeprecatedTupleStruct`: text
- --> $DIR/deprecation-lint.rs:277:17
+ --> $DIR/deprecation-lint.rs:276:17
|
LL | let _ = DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated struct `this_crate::nested::DeprecatedStruct`: text
- --> $DIR/deprecation-lint.rs:279:17
+ --> $DIR/deprecation-lint.rs:278:17
|
LL | let _ = nested::DeprecatedStruct {
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated unit struct `this_crate::nested::DeprecatedUnitStruct`: text
- --> $DIR/deprecation-lint.rs:284:17
+ --> $DIR/deprecation-lint.rs:283:17
|
LL | let _ = nested::DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated unit variant `this_crate::nested::Enum::DeprecatedVariant`: text
- --> $DIR/deprecation-lint.rs:286:17
+ --> $DIR/deprecation-lint.rs:285:17
|
LL | ... let _ = nested::Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated tuple struct `this_crate::nested::DeprecatedTupleStruct`: text
- --> $DIR/deprecation-lint.rs:288:17
+ --> $DIR/deprecation-lint.rs:287:17
|
LL | ... let _ = nested::DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:293:9
+ --> $DIR/deprecation-lint.rs:292:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:295:9
+ --> $DIR/deprecation-lint.rs:294:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:297:9
+ --> $DIR/deprecation-lint.rs:296:9
|
LL | Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:299:9
+ --> $DIR/deprecation-lint.rs:298:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated function `this_crate::test_fn_closure_body::{closure#0}::bar`
- --> $DIR/deprecation-lint.rs:317:13
+ --> $DIR/deprecation-lint.rs:316:13
|
LL | bar();
| ^^^
error: use of deprecated trait `this_crate::DeprecatedTrait`: text
- --> $DIR/deprecation-lint.rs:336:10
+ --> $DIR/deprecation-lint.rs:335:10
|
LL | impl DeprecatedTrait for S { }
| ^^^^^^^^^^^^^^^
error: use of deprecated trait `this_crate::DeprecatedTrait`: text
- --> $DIR/deprecation-lint.rs:338:24
+ --> $DIR/deprecation-lint.rs:337:24
|
LL | trait LocalTrait : DeprecatedTrait { }
| ^^^^^^^^^^^^^^^
error: use of deprecated struct `this_crate2::Deprecated`: text
- --> $DIR/deprecation-lint.rs:390:17
+ --> $DIR/deprecation-lint.rs:389:17
|
LL | let x = Deprecated {
| ^^^^^^^^^^
error: use of deprecated struct `this_crate2::Deprecated`: text
- --> $DIR/deprecation-lint.rs:399:13
+ --> $DIR/deprecation-lint.rs:398:13
|
LL | let Deprecated {
| ^^^^^^^^^^
error: use of deprecated struct `this_crate2::Deprecated`: text
- --> $DIR/deprecation-lint.rs:405:13
+ --> $DIR/deprecation-lint.rs:404:13
|
LL | let Deprecated
| ^^^^^^^^^^
error: use of deprecated tuple struct `this_crate2::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:410:17
+ --> $DIR/deprecation-lint.rs:409:17
|
LL | let x = Deprecated2(1, 2, 3);
| ^^^^^^^^^^^
error: use of deprecated tuple struct `this_crate2::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:420:13
+ --> $DIR/deprecation-lint.rs:419:13
|
LL | let Deprecated2
| ^^^^^^^^^^^
error: use of deprecated tuple struct `this_crate2::Deprecated2`: text
- --> $DIR/deprecation-lint.rs:429:13
+ --> $DIR/deprecation-lint.rs:428:13
|
LL | let Deprecated2
| ^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:18:13
+ --> $DIR/deprecation-lint.rs:17:13
|
LL | foo.method_deprecated();
| ^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:19:9
+ --> $DIR/deprecation-lint.rs:18:9
|
LL | Foo::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:20:9
+ --> $DIR/deprecation-lint.rs:19:9
|
LL | <Foo>::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:21:13
+ --> $DIR/deprecation-lint.rs:20:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:23:9
+ --> $DIR/deprecation-lint.rs:22:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:27:13
+ --> $DIR/deprecation-lint.rs:26:13
|
LL | ... foo.method_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:28:9
+ --> $DIR/deprecation-lint.rs:27:9
|
LL | ... Foo::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:29:9
+ --> $DIR/deprecation-lint.rs:28:9
|
LL | ... <Foo>::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:30:13
+ --> $DIR/deprecation-lint.rs:29:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:32:9
+ --> $DIR/deprecation-lint.rs:31:9
|
LL | ... <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated field `deprecation_lint::DeprecatedStruct::i`: text
- --> $DIR/deprecation-lint.rs:36:13
+ --> $DIR/deprecation-lint.rs:35:13
|
LL | i: 0
| ^^^^
error: use of deprecated field `deprecation_lint::nested::DeprecatedStruct::i`: text
- --> $DIR/deprecation-lint.rs:46:13
+ --> $DIR/deprecation-lint.rs:45:13
|
LL | i: 0
| ^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:65:13
+ --> $DIR/deprecation-lint.rs:64:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:67:9
+ --> $DIR/deprecation-lint.rs:66:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:69:13
+ --> $DIR/deprecation-lint.rs:68:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:71:9
+ --> $DIR/deprecation-lint.rs:70:9
|
LL | ... <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:76:13
+ --> $DIR/deprecation-lint.rs:75:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:77:13
+ --> $DIR/deprecation-lint.rs:76:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:87:13
+ --> $DIR/deprecation-lint.rs:86:13
|
LL | override2: 3,
| ^^^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:91:17
+ --> $DIR/deprecation-lint.rs:90:17
|
LL | let _ = x.override2;
| ^^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:95:13
+ --> $DIR/deprecation-lint.rs:94:13
|
LL | override2: _
| ^^^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Stable2::2`: text
- --> $DIR/deprecation-lint.rs:103:17
+ --> $DIR/deprecation-lint.rs:102:17
|
LL | let _ = x.2;
| ^^^
error: use of deprecated field `deprecation_lint::Stable2::2`: text
- --> $DIR/deprecation-lint.rs:108:20
+ --> $DIR/deprecation-lint.rs:107:20
|
LL | _)
| ^
error: use of deprecated field `deprecation_lint::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:116:13
+ --> $DIR/deprecation-lint.rs:115:13
|
LL | inherit: 1,
| ^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:120:17
+ --> $DIR/deprecation-lint.rs:119:17
|
LL | let _ = x.inherit;
| ^^^^^^^^^
error: use of deprecated field `deprecation_lint::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:125:13
+ --> $DIR/deprecation-lint.rs:124:13
|
LL | inherit: _,
| ^^^^^^^^^^
error: use of deprecated field `deprecation_lint::Deprecated2::0`: text
- --> $DIR/deprecation-lint.rs:136:17
+ --> $DIR/deprecation-lint.rs:135:17
|
LL | let _ = x.0;
| ^^^
error: use of deprecated field `deprecation_lint::Deprecated2::1`: text
- --> $DIR/deprecation-lint.rs:138:17
+ --> $DIR/deprecation-lint.rs:137:17
|
LL | let _ = x.1;
| ^^^
error: use of deprecated field `deprecation_lint::Deprecated2::2`: text
- --> $DIR/deprecation-lint.rs:140:17
+ --> $DIR/deprecation-lint.rs:139:17
|
LL | let _ = x.2;
| ^^^
error: use of deprecated field `deprecation_lint::Deprecated2::0`: text
- --> $DIR/deprecation-lint.rs:145:14
+ --> $DIR/deprecation-lint.rs:144:14
|
LL | (_,
| ^
error: use of deprecated field `deprecation_lint::Deprecated2::1`: text
- --> $DIR/deprecation-lint.rs:147:14
+ --> $DIR/deprecation-lint.rs:146:14
|
LL | _,
| ^
error: use of deprecated field `deprecation_lint::Deprecated2::2`: text
- --> $DIR/deprecation-lint.rs:149:14
+ --> $DIR/deprecation-lint.rs:148:14
|
LL | _)
| ^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:247:13
+ --> $DIR/deprecation-lint.rs:246:13
|
LL | foo.method_deprecated();
| ^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:248:9
+ --> $DIR/deprecation-lint.rs:247:9
|
LL | Foo::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/deprecation-lint.rs:249:9
+ --> $DIR/deprecation-lint.rs:248:9
|
LL | <Foo>::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:250:13
+ --> $DIR/deprecation-lint.rs:249:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:252:9
+ --> $DIR/deprecation-lint.rs:251:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:256:13
+ --> $DIR/deprecation-lint.rs:255:13
|
LL | ... foo.method_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:257:9
+ --> $DIR/deprecation-lint.rs:256:9
|
LL | ... Foo::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:258:9
+ --> $DIR/deprecation-lint.rs:257:9
|
LL | ... <Foo>::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:259:13
+ --> $DIR/deprecation-lint.rs:258:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:261:9
+ --> $DIR/deprecation-lint.rs:260:9
|
LL | <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated field `this_crate::DeprecatedStruct::i`: text
- --> $DIR/deprecation-lint.rs:270:13
+ --> $DIR/deprecation-lint.rs:269:13
|
LL | i: 0
| ^^^^
error: use of deprecated field `this_crate::nested::DeprecatedStruct::i`: text
- --> $DIR/deprecation-lint.rs:281:13
+ --> $DIR/deprecation-lint.rs:280:13
|
LL | i: 0
| ^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:292:13
+ --> $DIR/deprecation-lint.rs:291:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:294:9
+ --> $DIR/deprecation-lint.rs:293:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:296:13
+ --> $DIR/deprecation-lint.rs:295:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:298:9
+ --> $DIR/deprecation-lint.rs:297:9
|
LL | <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/deprecation-lint.rs:303:13
+ --> $DIR/deprecation-lint.rs:302:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
error: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/deprecation-lint.rs:304:13
+ --> $DIR/deprecation-lint.rs:303:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated field `this_crate2::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:363:13
+ --> $DIR/deprecation-lint.rs:362:13
|
LL | override2: 3,
| ^^^^^^^^^^^^
error: use of deprecated field `this_crate2::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:367:17
+ --> $DIR/deprecation-lint.rs:366:17
|
LL | let _ = x.override2;
| ^^^^^^^^^^^
error: use of deprecated field `this_crate2::Stable::override2`: text
- --> $DIR/deprecation-lint.rs:371:13
+ --> $DIR/deprecation-lint.rs:370:13
|
LL | override2: _
| ^^^^^^^^^^^^
error: use of deprecated field `this_crate2::Stable2::2`: text
- --> $DIR/deprecation-lint.rs:379:17
+ --> $DIR/deprecation-lint.rs:378:17
|
LL | let _ = x.2;
| ^^^
error: use of deprecated field `this_crate2::Stable2::2`: text
- --> $DIR/deprecation-lint.rs:384:20
+ --> $DIR/deprecation-lint.rs:383:20
|
LL | _)
| ^
error: use of deprecated field `this_crate2::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:392:13
+ --> $DIR/deprecation-lint.rs:391:13
|
LL | inherit: 1,
| ^^^^^^^^^^
error: use of deprecated field `this_crate2::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:396:17
+ --> $DIR/deprecation-lint.rs:395:17
|
LL | let _ = x.inherit;
| ^^^^^^^^^
error: use of deprecated field `this_crate2::Deprecated::inherit`: text
- --> $DIR/deprecation-lint.rs:401:13
+ --> $DIR/deprecation-lint.rs:400:13
|
LL | inherit: _,
| ^^^^^^^^^^
error: use of deprecated field `this_crate2::Deprecated2::0`: text
- --> $DIR/deprecation-lint.rs:413:17
+ --> $DIR/deprecation-lint.rs:412:17
|
LL | let _ = x.0;
| ^^^
error: use of deprecated field `this_crate2::Deprecated2::1`: text
- --> $DIR/deprecation-lint.rs:415:17
+ --> $DIR/deprecation-lint.rs:414:17
|
LL | let _ = x.1;
| ^^^
error: use of deprecated field `this_crate2::Deprecated2::2`: text
- --> $DIR/deprecation-lint.rs:417:17
+ --> $DIR/deprecation-lint.rs:416:17
|
LL | let _ = x.2;
| ^^^
error: use of deprecated field `this_crate2::Deprecated2::0`: text
- --> $DIR/deprecation-lint.rs:422:14
+ --> $DIR/deprecation-lint.rs:421:14
|
LL | (_,
| ^
error: use of deprecated field `this_crate2::Deprecated2::1`: text
- --> $DIR/deprecation-lint.rs:424:14
+ --> $DIR/deprecation-lint.rs:423:14
|
LL | _,
| ^
error: use of deprecated field `this_crate2::Deprecated2::2`: text
- --> $DIR/deprecation-lint.rs:426:14
+ --> $DIR/deprecation-lint.rs:425:14
|
LL | _)
| ^
-// ignore-tidy-linelength
-
#![deny(deprecated_in_future)]
#![feature(staged_api)]
error: use of unit struct `S1` that will be deprecated in future version 99.99.99: effectively never
- --> $DIR/rustc_deprecation-in-future.rs:18:13
+ --> $DIR/rustc_deprecation-in-future.rs:16:13
|
LL | let _ = S1;
| ^^
|
note: the lint level is defined here
- --> $DIR/rustc_deprecation-in-future.rs:3:9
+ --> $DIR/rustc_deprecation-in-future.rs:1:9
|
LL | #![deny(deprecated_in_future)]
| ^^^^^^^^^^^^^^^^^^^^
error: use of unit struct `S2` that will be deprecated in a future Rust version: literally never
- --> $DIR/rustc_deprecation-in-future.rs:19:13
+ --> $DIR/rustc_deprecation-in-future.rs:17:13
|
LL | let _ = S2;
| ^^
-// ignore-tidy-linelength
-
struct SingleFoo {
x: i32
}
error[E0063]: missing field `x` in initializer of `SingleFoo`
- --> $DIR/E0063.rs:32:13
+ --> $DIR/E0063.rs:30:13
|
LL | let w = SingleFoo { };
| ^^^^^^^^^ missing `x`
error[E0063]: missing fields `y` and `z` in initializer of `PluralFoo`
- --> $DIR/E0063.rs:34:13
+ --> $DIR/E0063.rs:32:13
|
LL | let x = PluralFoo {x: 1};
| ^^^^^^^^^ missing `y` and `z`
error[E0063]: missing fields `a`, `b`, `y` and 1 other field in initializer of `TruncatedFoo`
- --> $DIR/E0063.rs:36:13
+ --> $DIR/E0063.rs:34:13
|
LL | let y = TruncatedFoo{x:1};
| ^^^^^^^^^^^^ missing `a`, `b`, `y` and 1 other field
error[E0063]: missing fields `a`, `b`, `c` and 2 other fields in initializer of `TruncatedPluralFoo`
- --> $DIR/E0063.rs:38:13
+ --> $DIR/E0063.rs:36:13
|
LL | let z = TruncatedPluralFoo{x:1};
| ^^^^^^^^^^^^^^^^^^ missing `a`, `b`, `c` and 2 other fields
-// ignore-tidy-linelength
-
// In this test baz isn't resolved when called as foo.baz even though
// it's called from inside foo. This is somewhat surprising and may
// want to change eventually.
error[E0433]: failed to resolve: use of undeclared crate or module `foo`
- --> $DIR/export-fully-qualified.rs:8:20
+ --> $DIR/export-fully-qualified.rs:6:20
|
LL | pub fn bar() { foo::baz(); }
| ^^^ use of undeclared crate or module `foo`
// only-x86_64
-// ignore-tidy-linelength
// gate-test-intrinsics
// gate-test-platform_intrinsics
// gate-test-abi_vectorcall
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:13:8
+ --> $DIR/feature-gate-abi.rs:12:8
|
LL | extern "rust-intrinsic" fn f1() {}
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:15:8
+ --> $DIR/feature-gate-abi.rs:14:8
|
LL | extern "platform-intrinsic" fn f2() {}
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:17:8
+ --> $DIR/feature-gate-abi.rs:16:8
|
LL | extern "vectorcall" fn f3() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:18:8
+ --> $DIR/feature-gate-abi.rs:17:8
|
LL | extern "rust-call" fn f4(_: ()) {}
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:19:8
+ --> $DIR/feature-gate-abi.rs:18:8
|
LL | extern "msp430-interrupt" fn f5() {}
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:20:8
+ --> $DIR/feature-gate-abi.rs:19:8
|
LL | extern "ptx-kernel" fn f6() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:21:8
+ --> $DIR/feature-gate-abi.rs:20:8
|
LL | extern "x86-interrupt" fn f7() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:22:8
+ --> $DIR/feature-gate-abi.rs:21:8
|
LL | extern "thiscall" fn f8() {}
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:23:8
+ --> $DIR/feature-gate-abi.rs:22:8
|
LL | extern "amdgpu-kernel" fn f9() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:24:8
+ --> $DIR/feature-gate-abi.rs:23:8
|
LL | extern "efiapi" fn f10() {}
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:28:12
+ --> $DIR/feature-gate-abi.rs:27:12
|
LL | extern "rust-intrinsic" fn m1();
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:30:12
+ --> $DIR/feature-gate-abi.rs:29:12
|
LL | extern "platform-intrinsic" fn m2();
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:32:12
+ --> $DIR/feature-gate-abi.rs:31:12
|
LL | extern "vectorcall" fn m3();
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:33:12
+ --> $DIR/feature-gate-abi.rs:32:12
|
LL | extern "rust-call" fn m4(_: ());
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:34:12
+ --> $DIR/feature-gate-abi.rs:33:12
|
LL | extern "msp430-interrupt" fn m5();
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:35:12
+ --> $DIR/feature-gate-abi.rs:34:12
|
LL | extern "ptx-kernel" fn m6();
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:36:12
+ --> $DIR/feature-gate-abi.rs:35:12
|
LL | extern "x86-interrupt" fn m7();
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:37:12
+ --> $DIR/feature-gate-abi.rs:36:12
|
LL | extern "thiscall" fn m8();
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:38:12
+ --> $DIR/feature-gate-abi.rs:37:12
|
LL | extern "amdgpu-kernel" fn m9();
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:39:12
+ --> $DIR/feature-gate-abi.rs:38:12
|
LL | extern "efiapi" fn m10();
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:41:12
+ --> $DIR/feature-gate-abi.rs:40:12
|
LL | extern "vectorcall" fn dm3() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:42:12
+ --> $DIR/feature-gate-abi.rs:41:12
|
LL | extern "rust-call" fn dm4(_: ()) {}
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:43:12
+ --> $DIR/feature-gate-abi.rs:42:12
|
LL | extern "msp430-interrupt" fn dm5() {}
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:44:12
+ --> $DIR/feature-gate-abi.rs:43:12
|
LL | extern "ptx-kernel" fn dm6() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:45:12
+ --> $DIR/feature-gate-abi.rs:44:12
|
LL | extern "x86-interrupt" fn dm7() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:46:12
+ --> $DIR/feature-gate-abi.rs:45:12
|
LL | extern "thiscall" fn dm8() {}
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:47:12
+ --> $DIR/feature-gate-abi.rs:46:12
|
LL | extern "amdgpu-kernel" fn dm9() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:48:12
+ --> $DIR/feature-gate-abi.rs:47:12
|
LL | extern "efiapi" fn dm10() {}
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:55:12
+ --> $DIR/feature-gate-abi.rs:54:12
|
LL | extern "rust-intrinsic" fn m1() {}
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:57:12
+ --> $DIR/feature-gate-abi.rs:56:12
|
LL | extern "platform-intrinsic" fn m2() {}
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:59:12
+ --> $DIR/feature-gate-abi.rs:58:12
|
LL | extern "vectorcall" fn m3() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:60:12
+ --> $DIR/feature-gate-abi.rs:59:12
|
LL | extern "rust-call" fn m4(_: ()) {}
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:61:12
+ --> $DIR/feature-gate-abi.rs:60:12
|
LL | extern "msp430-interrupt" fn m5() {}
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:62:12
+ --> $DIR/feature-gate-abi.rs:61:12
|
LL | extern "ptx-kernel" fn m6() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:63:12
+ --> $DIR/feature-gate-abi.rs:62:12
|
LL | extern "x86-interrupt" fn m7() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:64:12
+ --> $DIR/feature-gate-abi.rs:63:12
|
LL | extern "thiscall" fn m8() {}
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:65:12
+ --> $DIR/feature-gate-abi.rs:64:12
|
LL | extern "amdgpu-kernel" fn m9() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:66:12
+ --> $DIR/feature-gate-abi.rs:65:12
|
LL | extern "efiapi" fn m10() {}
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:71:12
+ --> $DIR/feature-gate-abi.rs:70:12
|
LL | extern "rust-intrinsic" fn im1() {}
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:73:12
+ --> $DIR/feature-gate-abi.rs:72:12
|
LL | extern "platform-intrinsic" fn im2() {}
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:75:12
+ --> $DIR/feature-gate-abi.rs:74:12
|
LL | extern "vectorcall" fn im3() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:76:12
+ --> $DIR/feature-gate-abi.rs:75:12
|
LL | extern "rust-call" fn im4(_: ()) {}
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:77:12
+ --> $DIR/feature-gate-abi.rs:76:12
|
LL | extern "msp430-interrupt" fn im5() {}
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:78:12
+ --> $DIR/feature-gate-abi.rs:77:12
|
LL | extern "ptx-kernel" fn im6() {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:79:12
+ --> $DIR/feature-gate-abi.rs:78:12
|
LL | extern "x86-interrupt" fn im7() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:80:12
+ --> $DIR/feature-gate-abi.rs:79:12
|
LL | extern "thiscall" fn im8() {}
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:81:12
+ --> $DIR/feature-gate-abi.rs:80:12
|
LL | extern "amdgpu-kernel" fn im9() {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:82:12
+ --> $DIR/feature-gate-abi.rs:81:12
|
LL | extern "efiapi" fn im10() {}
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:86:18
+ --> $DIR/feature-gate-abi.rs:85:18
|
LL | type A1 = extern "rust-intrinsic" fn();
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:87:18
+ --> $DIR/feature-gate-abi.rs:86:18
|
LL | type A2 = extern "platform-intrinsic" fn();
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:88:18
+ --> $DIR/feature-gate-abi.rs:87:18
|
LL | type A3 = extern "vectorcall" fn();
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:89:18
+ --> $DIR/feature-gate-abi.rs:88:18
|
LL | type A4 = extern "rust-call" fn(_: ());
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:90:18
+ --> $DIR/feature-gate-abi.rs:89:18
|
LL | type A5 = extern "msp430-interrupt" fn();
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:91:18
+ --> $DIR/feature-gate-abi.rs:90:18
|
LL | type A6 = extern "ptx-kernel" fn ();
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:92:18
+ --> $DIR/feature-gate-abi.rs:91:18
|
LL | type A7 = extern "x86-interrupt" fn();
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:93:18
+ --> $DIR/feature-gate-abi.rs:92:18
|
LL | type A8 = extern "thiscall" fn();
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:94:18
+ --> $DIR/feature-gate-abi.rs:93:18
|
LL | type A9 = extern "amdgpu-kernel" fn();
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:95:19
+ --> $DIR/feature-gate-abi.rs:94:19
|
LL | type A10 = extern "efiapi" fn();
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error[E0658]: intrinsics are subject to change
- --> $DIR/feature-gate-abi.rs:98:8
+ --> $DIR/feature-gate-abi.rs:97:8
|
LL | extern "rust-intrinsic" {}
| ^^^^^^^^^^^^^^^^
= help: add `#![feature(intrinsics)]` to the crate attributes to enable
error[E0658]: platform intrinsics are experimental and possibly buggy
- --> $DIR/feature-gate-abi.rs:99:8
+ --> $DIR/feature-gate-abi.rs:98:8
|
LL | extern "platform-intrinsic" {}
| ^^^^^^^^^^^^^^^^^^^^
= help: add `#![feature(platform_intrinsics)]` to the crate attributes to enable
error[E0658]: vectorcall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:100:8
+ --> $DIR/feature-gate-abi.rs:99:8
|
LL | extern "vectorcall" {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_vectorcall)]` to the crate attributes to enable
error[E0658]: rust-call ABI is subject to change
- --> $DIR/feature-gate-abi.rs:101:8
+ --> $DIR/feature-gate-abi.rs:100:8
|
LL | extern "rust-call" {}
| ^^^^^^^^^^^
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0658]: msp430-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:102:8
+ --> $DIR/feature-gate-abi.rs:101:8
|
LL | extern "msp430-interrupt" {}
| ^^^^^^^^^^^^^^^^^^
= help: add `#![feature(abi_msp430_interrupt)]` to the crate attributes to enable
error[E0658]: PTX ABIs are experimental and subject to change
- --> $DIR/feature-gate-abi.rs:103:8
+ --> $DIR/feature-gate-abi.rs:102:8
|
LL | extern "ptx-kernel" {}
| ^^^^^^^^^^^^
= help: add `#![feature(abi_ptx)]` to the crate attributes to enable
error[E0658]: x86-interrupt ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:104:8
+ --> $DIR/feature-gate-abi.rs:103:8
|
LL | extern "x86-interrupt" {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_x86_interrupt)]` to the crate attributes to enable
error[E0658]: thiscall is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:105:8
+ --> $DIR/feature-gate-abi.rs:104:8
|
LL | extern "thiscall" {}
| ^^^^^^^^^^
= help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
error[E0658]: amdgpu-kernel ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:106:8
+ --> $DIR/feature-gate-abi.rs:105:8
|
LL | extern "amdgpu-kernel" {}
| ^^^^^^^^^^^^^^^
= help: add `#![feature(abi_amdgpu_kernel)]` to the crate attributes to enable
error[E0658]: efiapi ABI is experimental and subject to change
- --> $DIR/feature-gate-abi.rs:107:8
+ --> $DIR/feature-gate-abi.rs:106:8
|
LL | extern "efiapi" {}
| ^^^^^^^^
= help: add `#![feature(abi_efiapi)]` to the crate attributes to enable
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:28:32
+ --> $DIR/feature-gate-abi.rs:27:32
|
LL | extern "rust-intrinsic" fn m1();
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:30:36
+ --> $DIR/feature-gate-abi.rs:29:36
|
LL | extern "platform-intrinsic" fn m2();
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:13:33
+ --> $DIR/feature-gate-abi.rs:12:33
|
LL | extern "rust-intrinsic" fn f1() {}
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:15:37
+ --> $DIR/feature-gate-abi.rs:14:37
|
LL | extern "platform-intrinsic" fn f2() {}
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:55:37
+ --> $DIR/feature-gate-abi.rs:54:37
|
LL | extern "rust-intrinsic" fn m1() {}
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:57:41
+ --> $DIR/feature-gate-abi.rs:56:41
|
LL | extern "platform-intrinsic" fn m2() {}
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:71:38
+ --> $DIR/feature-gate-abi.rs:70:38
|
LL | extern "rust-intrinsic" fn im1() {}
| ^^
error: intrinsic must be in `extern "rust-intrinsic" { ... }` block
- --> $DIR/feature-gate-abi.rs:73:42
+ --> $DIR/feature-gate-abi.rs:72:42
|
LL | extern "platform-intrinsic" fn im2() {}
| ^^
+++ /dev/null
-// Test that `#[link_args]` attribute is gated by `link_args`
-// feature gate, both when it occurs where expected (atop
-// `extern { }` blocks) and where unexpected.
-
-// sidestep warning (which is correct, but misleading for
-// purposes of this test)
-#![allow(unused_attributes)]
-#![link_args = "-l unexpected_use_as_inner_attr_on_mod"]
-//~^ ERROR the `link_args` attribute is experimental
-
-#[link_args = "-l expected_use_case"]
-//~^ ERROR the `link_args` attribute is experimental
-extern "C" {}
-
-#[link_args = "-l unexected_use_on_non_extern_item"]
-//~^ ERROR: the `link_args` attribute is experimental
-fn main() {}
+++ /dev/null
-error[E0658]: the `link_args` attribute is experimental and not portable across platforms, it is recommended to use `#[link(name = "foo")] instead
- --> $DIR/feature-gate-link_args.rs:11:1
- |
-LL | #[link_args = "-l expected_use_case"]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #29596 <https://github.com/rust-lang/rust/issues/29596> for more information
- = help: add `#![feature(link_args)]` to the crate attributes to enable
-
-error[E0658]: the `link_args` attribute is experimental and not portable across platforms, it is recommended to use `#[link(name = "foo")] instead
- --> $DIR/feature-gate-link_args.rs:15:1
- |
-LL | #[link_args = "-l unexected_use_on_non_extern_item"]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #29596 <https://github.com/rust-lang/rust/issues/29596> for more information
- = help: add `#![feature(link_args)]` to the crate attributes to enable
-
-error[E0658]: the `link_args` attribute is experimental and not portable across platforms, it is recommended to use `#[link(name = "foo")] instead
- --> $DIR/feature-gate-link_args.rs:8:1
- |
-LL | #![link_args = "-l unexpected_use_as_inner_attr_on_mod"]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #29596 <https://github.com/rust-lang/rust/issues/29596> for more information
- = help: add `#![feature(link_args)]` to the crate attributes to enable
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
-// ignore-tidy-linelength
-
// Test that `#[rustc_*]` attributes are gated by `rustc_attrs` feature gate.
#[rustc_variance] //~ ERROR the `#[rustc_variance]` attribute is just used for rustc unit tests and will never be stable
error[E0658]: the `#[rustc_variance]` attribute is just used for rustc unit tests and will never be stable
- --> $DIR/feature-gate-rustc-attrs-1.rs:5:1
+ --> $DIR/feature-gate-rustc-attrs-1.rs:3:1
|
LL | #[rustc_variance]
| ^^^^^^^^^^^^^^^^^
= help: add `#![feature(rustc_attrs)]` to the crate attributes to enable
error[E0658]: the `#[rustc_error]` attribute is just used for rustc unit tests and will never be stable
- --> $DIR/feature-gate-rustc-attrs-1.rs:6:1
+ --> $DIR/feature-gate-rustc-attrs-1.rs:4:1
|
LL | #[rustc_error]
| ^^^^^^^^^^^^^^
= help: add `#![feature(rustc_attrs)]` to the crate attributes to enable
error[E0658]: the `#[rustc_nonnull_optimization_guaranteed]` attribute is just used to enable niche optimizations in libcore and will never be stable
- --> $DIR/feature-gate-rustc-attrs-1.rs:7:1
+ --> $DIR/feature-gate-rustc-attrs-1.rs:5:1
|
LL | #[rustc_nonnull_optimization_guaranteed]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// which would mess up the treatment of other cases in
// issue-43106-gating-of-builtin-attrs.rs)
-// ignore-tidy-linelength
#![macro_export]
//~^ ERROR: `macro_export` attribute cannot be used at crate level
error: attribute must be of the form `#[inline]` or `#[inline(always|never)]`
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:41:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:40:5
|
LL | #[inline = "2100"] fn f() { }
| ^^^^^^^^^^^^^^^^^^
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
error: `main` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:110:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:109:1
|
LL | #[main]
| ^^^^^^^
error: `main` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:113:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:112:17
|
LL | mod inner { #![main] }
| ^^^^^^^^
error: `main` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:118:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:117:5
|
LL | #[main] struct S;
| ^^^^^^^
error: `main` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:121:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:120:5
|
LL | #[main] type T = S;
| ^^^^^^^
error: `main` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:124:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:123:5
|
LL | #[main] impl S { }
| ^^^^^^^
error: `start` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:128:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:127:1
|
LL | #[start]
| ^^^^^^^^
error: `start` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:131:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:130:17
|
LL | mod inner { #![start] }
| ^^^^^^^^^
error: `start` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:136:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:135:5
|
LL | #[start] struct S;
| ^^^^^^^^
error: `start` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:139:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:138:5
|
LL | #[start] type T = S;
| ^^^^^^^^
error: `start` attribute can only be used on functions
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:142:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:141:5
|
LL | #[start] impl S { }
| ^^^^^^^^
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:32:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:31:1
|
LL | #[inline]
| ^^^^^^^^^
| |_- not a function or closure
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:60:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:59:1
|
LL | #[no_link]
| ^^^^^^^^^^
| |_- not an `extern crate` item
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:86:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:85:1
|
LL | #[export_name = "2200"]
| ^^^^^^^^^^^^^^^^^^^^^^^
| |_- not a function or static
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:26:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:25:1
|
LL | #![no_link]
| ^^^^^^^^^^^
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:28:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:27:1
|
LL | #![export_name = "2200"]
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:30:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:29:1
|
LL | #![inline]
| ^^^^^^^^^^
error: `macro_export` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:13:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:12:1
|
LL | #![macro_export]
| ^^^^^^^^^^^^^^^^
error: `main` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:15:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:14:1
|
LL | #![main]
| ^^^^^^^^
error: `start` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:17:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:16:1
|
LL | #![start]
| ^^^^^^^^^
error: `repr` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:19:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:18:1
|
LL | #![repr()]
| ^^^^^^^^^^
error: `path` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:21:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:20:1
|
LL | #![path = "3800"]
| ^^^^^^^^^^^^^^^^^
error: `automatically_derived` attribute cannot be used at crate level
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:23:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:22:1
|
LL | #![automatically_derived]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:37:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:36:17
|
LL | mod inner { #![inline] }
| ------------^^^^^^^^^^-- not a function or closure
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:47:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:46:5
|
LL | #[inline] struct S;
| ^^^^^^^^^ --------- not a function or closure
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:51:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:50:5
|
LL | #[inline] type T = S;
| ^^^^^^^^^ ----------- not a function or closure
error[E0518]: attribute should be applied to function or closure
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:55:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:54:5
|
LL | #[inline] impl S { }
| ^^^^^^^^^ ---------- not a function or closure
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:65:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:64:17
|
LL | mod inner { #![no_link] }
| ------------^^^^^^^^^^^-- not an `extern crate` item
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:69:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:68:5
|
LL | #[no_link] fn f() { }
| ^^^^^^^^^^ ---------- not an `extern crate` item
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:73:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:72:5
|
LL | #[no_link] struct S;
| ^^^^^^^^^^ --------- not an `extern crate` item
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:77:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:76:5
|
LL | #[no_link]type T = S;
| ^^^^^^^^^^----------- not an `extern crate` item
error: attribute should be applied to an `extern crate` item
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:81:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:80:5
|
LL | #[no_link] impl S { }
| ^^^^^^^^^^ ---------- not an `extern crate` item
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:91:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:90:17
|
LL | mod inner { #![export_name="2200"] }
| ------------^^^^^^^^^^^^^^^^^^^^^^-- not a function or static
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:97:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:96:5
|
LL | #[export_name = "2200"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^ --------- not a function or static
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:101:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:100:5
|
LL | #[export_name = "2200"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a function or static
error: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:105:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:104:5
|
LL | #[export_name = "2200"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^ ---------- not a function or static
// occurrences in the source text.
// check-pass
-// ignore-tidy-linelength
#![feature(test, plugin_registrar)]
#![warn(unused_attributes, unknown_lints)]
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:53:9
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:52:9
|
LL | #![warn(x5400)]
| ^^^^^
|
note: the lint level is defined here
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:40:28
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:39:28
|
LL | #![warn(unused_attributes, unknown_lints)]
| ^^^^^^^^^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:54:10
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:53:10
|
LL | #![allow(x5300)]
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:55:11
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:54:11
|
LL | #![forbid(x5200)]
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:56:9
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:55:9
|
LL | #![deny(x5100)]
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:111:8
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:110:8
|
LL | #[warn(x5400)]
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:114:25
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:113:25
|
LL | mod inner { #![warn(x5400)] }
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:117:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:116:12
|
LL | #[warn(x5400)] fn f() { }
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:120:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:119:12
|
LL | #[warn(x5400)] struct S;
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:123:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:122:12
|
LL | #[warn(x5400)] type T = S;
| ^^^^^
warning: unknown lint: `x5400`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:126:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:125:12
|
LL | #[warn(x5400)] impl S { }
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:130:9
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:129:9
|
LL | #[allow(x5300)]
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:133:26
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:132:26
|
LL | mod inner { #![allow(x5300)] }
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:136:13
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:135:13
|
LL | #[allow(x5300)] fn f() { }
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:139:13
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:138:13
|
LL | #[allow(x5300)] struct S;
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:142:13
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:141:13
|
LL | #[allow(x5300)] type T = S;
| ^^^^^
warning: unknown lint: `x5300`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:145:13
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:144:13
|
LL | #[allow(x5300)] impl S { }
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:149:10
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:148:10
|
LL | #[forbid(x5200)]
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:152:27
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:151:27
|
LL | mod inner { #![forbid(x5200)] }
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:155:14
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:154:14
|
LL | #[forbid(x5200)] fn f() { }
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:158:14
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:157:14
|
LL | #[forbid(x5200)] struct S;
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:161:14
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:160:14
|
LL | #[forbid(x5200)] type T = S;
| ^^^^^
warning: unknown lint: `x5200`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:164:14
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:163:14
|
LL | #[forbid(x5200)] impl S { }
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:168:8
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:167:8
|
LL | #[deny(x5100)]
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:171:25
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:170:25
|
LL | mod inner { #![deny(x5100)] }
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:174:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:173:12
|
LL | #[deny(x5100)] fn f() { }
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:177:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:176:12
|
LL | #[deny(x5100)] struct S;
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:180:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:179:12
|
LL | #[deny(x5100)] type T = S;
| ^^^^^
warning: unknown lint: `x5100`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:183:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:182:12
|
LL | #[deny(x5100)] impl S { }
| ^^^^^
warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:441:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:440:17
|
LL | mod inner { #![macro_escape] }
| ^^^^^^^^^^^^^^^^
= help: try an outer attribute: `#[macro_use]`
warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:438:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:437:1
|
LL | #[macro_escape]
| ^^^^^^^^^^^^^^^
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:228:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:227:17
|
LL | mod inner { #![plugin_registrar] }
| ^^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
= note: `#[warn(deprecated)]` on by default
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:236:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:235:5
|
LL | #[plugin_registrar] struct S;
| ^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:241:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:240:5
|
LL | #[plugin_registrar] type T = S;
| ^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:246:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:245:5
|
LL | #[plugin_registrar] impl S { }
| ^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:223:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:222:1
|
LL | #[plugin_registrar]
| ^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:46:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:45:1
|
LL | #![plugin_registrar]
| ^^^^^^^^^^^^^^^^^^^^ help: may be removed in a future compiler version
warning: use of deprecated attribute `crate_id`: no longer used.
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:91:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:90:1
|
LL | #![crate_id = "10"]
| ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
warning: use of deprecated attribute `no_start`: no longer used.
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:100:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:99:1
|
LL | #![no_start]
| ^^^^^^^^^^^^ help: remove this attribute
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:333:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:332:1
|
LL | #[no_mangle]
| ^^^^^^^^^^^^
| |_- not a function or static
|
note: the lint level is defined here
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:40:9
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:39:9
|
LL | #![warn(unused_attributes, unknown_lints)]
| ^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:500:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:499:1
|
LL | #[cold]
| ^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:529:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:528:1
|
LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:568:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:567:1
|
LL | #[link_section = "1800"]
| ^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:69:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:68:1
|
LL | #![cold]
| ^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:73:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:72:1
|
LL | #![link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:76:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:75:1
|
LL | #![link_section = "1800"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:338:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:337:17
|
LL | mod inner { #![no_mangle] }
| ------------^^^^^^^^^^^^^-- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:345:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:344:5
|
LL | #[no_mangle] struct S;
| ^^^^^^^^^^^^ --------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:350:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:349:5
|
LL | #[no_mangle] type T = S;
| ^^^^^^^^^^^^ ----------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:355:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:354:5
|
LL | #[no_mangle] impl S { }
| ^^^^^^^^^^^^ ---------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:506:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:505:17
|
LL | mod inner { #![cold] }
| ------------^^^^^^^^-- not a function
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:513:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:512:5
|
LL | #[cold] struct S;
| ^^^^^^^ --------- not a function
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:518:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:517:5
|
LL | #[cold] type T = S;
| ^^^^^^^ ----------- not a function
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:523:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:522:5
|
LL | #[cold] impl S { }
| ^^^^^^^ ---------- not a function
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:535:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:534:5
|
LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
help: try `#[link(name = "1900")]` instead
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:535:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:534:5
|
LL | #[link_name = "1900"]
| ^^^^^^^^^^^^^^^^^^^^^
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:542:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:541:17
|
LL | mod inner { #![link_name="1900"] }
| ------------^^^^^^^^^^^^^^^^^^^^-- not a foreign function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:547:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:546:5
|
LL | #[link_name = "1900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:552:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:551:5
|
LL | #[link_name = "1900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^ --------- not a foreign function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:557:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:556:5
|
LL | #[link_name = "1900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^ ----------- not a foreign function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:562:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:561:5
|
LL | #[link_name = "1900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^ ---------- not a foreign function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:574:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:573:17
|
LL | mod inner { #![link_section="1800"] }
| ------------^^^^^^^^^^^^^^^^^^^^^^^-- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:581:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:580:5
|
LL | #[link_section = "1800"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ --------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:586:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:585:5
|
LL | #[link_section = "1800"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a function or static
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:591:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:590:5
|
LL | #[link_section = "1800"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^ ---------- not a function or static
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: the feature `rust1` has been stable since 1.0.0 and no longer requires an attribute to enable
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:96:12
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:95:12
|
LL | #![feature(rust1)]
| ^^^^^
= note: `#[warn(stable_features)]` on by default
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:46:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:45:1
|
LL | #![plugin_registrar]
| ^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:60:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:59:1
|
LL | #![should_panic]
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:61:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:60:1
|
LL | #![ignore]
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:67:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:66:1
|
LL | #![proc_macro_derive()]
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:191:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:190:5
|
LL | #[macro_use] fn f() { }
| ^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:194:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:193:5
|
LL | #[macro_use] struct S;
| ^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:197:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:196:5
|
LL | #[macro_use] type T = S;
| ^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:200:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:199:5
|
LL | #[macro_use] impl S { }
| ^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:204:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:203:1
|
LL | #[macro_export]
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:207:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:206:17
|
LL | mod inner { #![macro_export] }
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:210:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:209:5
|
LL | #[macro_export] fn f() { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:213:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:212:5
|
LL | #[macro_export] struct S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:216:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:215:5
|
LL | #[macro_export] type T = S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:219:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:218:5
|
LL | #[macro_export] impl S { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:223:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:222:1
|
LL | #[plugin_registrar]
| ^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:228:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:227:17
|
LL | mod inner { #![plugin_registrar] }
| ^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:236:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:235:5
|
LL | #[plugin_registrar] struct S;
| ^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:241:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:240:5
|
LL | #[plugin_registrar] type T = S;
| ^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:246:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:245:5
|
LL | #[plugin_registrar] impl S { }
| ^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:301:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:300:5
|
LL | #[path = "3800"] fn f() { }
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:304:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:303:5
|
LL | #[path = "3800"] struct S;
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:307:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:306:5
|
LL | #[path = "3800"] type T = S;
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:310:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:309:5
|
LL | #[path = "3800"] impl S { }
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:314:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:313:1
|
LL | #[automatically_derived]
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:317:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:316:17
|
LL | mod inner { #![automatically_derived] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:320:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:319:5
|
LL | #[automatically_derived] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:323:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:322:5
|
LL | #[automatically_derived] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:326:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:325:5
|
LL | #[automatically_derived] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:329:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:328:5
|
LL | #[automatically_derived] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:361:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:360:1
|
LL | #[should_panic]
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:364:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:363:17
|
LL | mod inner { #![should_panic] }
| ^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:367:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:366:5
|
LL | #[should_panic] fn f() { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:370:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:369:5
|
LL | #[should_panic] struct S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:373:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:372:5
|
LL | #[should_panic] type T = S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:376:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:375:5
|
LL | #[should_panic] impl S { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:380:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:379:1
|
LL | #[ignore]
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:383:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:382:17
|
LL | mod inner { #![ignore] }
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:386:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:385:5
|
LL | #[ignore] fn f() { }
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:389:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:388:5
|
LL | #[ignore] struct S;
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:392:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:391:5
|
LL | #[ignore] type T = S;
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:395:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:394:5
|
LL | #[ignore] impl S { }
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:399:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:398:1
|
LL | #[no_implicit_prelude]
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:402:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:401:17
|
LL | mod inner { #![no_implicit_prelude] }
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:405:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:404:5
|
LL | #[no_implicit_prelude] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:408:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:407:5
|
LL | #[no_implicit_prelude] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:411:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:410:5
|
LL | #[no_implicit_prelude] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:414:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:413:5
|
LL | #[no_implicit_prelude] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:418:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:417:1
|
LL | #[reexport_test_harness_main = "2900"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:421:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:420:17
|
LL | mod inner { #![reexport_test_harness_main="2900"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:424:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:423:5
|
LL | #[reexport_test_harness_main = "2900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:427:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:426:5
|
LL | #[reexport_test_harness_main = "2900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:430:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:429:5
|
LL | #[reexport_test_harness_main = "2900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:433:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:432:5
|
LL | #[reexport_test_harness_main = "2900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:445:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:444:5
|
LL | #[macro_escape] fn f() { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:448:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:447:5
|
LL | #[macro_escape] struct S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:451:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:450:5
|
LL | #[macro_escape] type T = S;
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:454:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:453:5
|
LL | #[macro_escape] impl S { }
| ^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:458:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:457:1
|
LL | #[no_std]
| ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:458:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:457:1
|
LL | #[no_std]
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:462:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:461:17
|
LL | mod inner { #![no_std] }
| ^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:462:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:461:17
|
LL | mod inner { #![no_std] }
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:466:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:465:5
|
LL | #[no_std] fn f() { }
| ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:466:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:465:5
|
LL | #[no_std] fn f() { }
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:470:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:469:5
|
LL | #[no_std] struct S;
| ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:470:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:469:5
|
LL | #[no_std] struct S;
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:474:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:473:5
|
LL | #[no_std] type T = S;
| ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:474:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:473:5
|
LL | #[no_std] type T = S;
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:478:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:477:5
|
LL | #[no_std] impl S { }
| ^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:478:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:477:5
|
LL | #[no_std] impl S { }
| ^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:659:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:658:1
|
LL | #[crate_name = "0900"]
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:659:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:658:1
|
LL | #[crate_name = "0900"]
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:663:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:662:17
|
LL | mod inner { #![crate_name="0900"] }
| ^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:663:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:662:17
|
LL | mod inner { #![crate_name="0900"] }
| ^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:667:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:666:5
|
LL | #[crate_name = "0900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:667:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:666:5
|
LL | #[crate_name = "0900"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:671:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:670:5
|
LL | #[crate_name = "0900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:671:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:670:5
|
LL | #[crate_name = "0900"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:675:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:674:5
|
LL | #[crate_name = "0900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:675:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:674:5
|
LL | #[crate_name = "0900"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:679:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:678:5
|
LL | #[crate_name = "0900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:679:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:678:5
|
LL | #[crate_name = "0900"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:684:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:683:1
|
LL | #[crate_type = "0800"]
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:684:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:683:1
|
LL | #[crate_type = "0800"]
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:688:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:687:17
|
LL | mod inner { #![crate_type="0800"] }
| ^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:688:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:687:17
|
LL | mod inner { #![crate_type="0800"] }
| ^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:692:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:691:5
|
LL | #[crate_type = "0800"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:692:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:691:5
|
LL | #[crate_type = "0800"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:696:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:695:5
|
LL | #[crate_type = "0800"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:696:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:695:5
|
LL | #[crate_type = "0800"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:700:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:699:5
|
LL | #[crate_type = "0800"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:700:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:699:5
|
LL | #[crate_type = "0800"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:704:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:703:5
|
LL | #[crate_type = "0800"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:704:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:703:5
|
LL | #[crate_type = "0800"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:709:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:708:1
|
LL | #[feature(x0600)]
| ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:709:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:708:1
|
LL | #[feature(x0600)]
| ^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:713:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:712:17
|
LL | mod inner { #![feature(x0600)] }
| ^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:713:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:712:17
|
LL | mod inner { #![feature(x0600)] }
| ^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:717:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:716:5
|
LL | #[feature(x0600)] fn f() { }
| ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:717:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:716:5
|
LL | #[feature(x0600)] fn f() { }
| ^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:721:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:5
|
LL | #[feature(x0600)] struct S;
| ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:721:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:720:5
|
LL | #[feature(x0600)] struct S;
| ^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:725:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:724:5
|
LL | #[feature(x0600)] type T = S;
| ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:725:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:724:5
|
LL | #[feature(x0600)] type T = S;
| ^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:729:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:728:5
|
LL | #[feature(x0600)] impl S { }
| ^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:729:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:728:5
|
LL | #[feature(x0600)] impl S { }
| ^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:735:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:734:1
|
LL | #[no_main]
| ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:735:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:734:1
|
LL | #[no_main]
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:739:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:738:17
|
LL | mod inner { #![no_main] }
| ^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:739:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:738:17
|
LL | mod inner { #![no_main] }
| ^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:743:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:742:5
|
LL | #[no_main] fn f() { }
| ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:743:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:742:5
|
LL | #[no_main] fn f() { }
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:747:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:746:5
|
LL | #[no_main] struct S;
| ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:747:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:746:5
|
LL | #[no_main] struct S;
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:751:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:750:5
|
LL | #[no_main] type T = S;
| ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:751:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:750:5
|
LL | #[no_main] type T = S;
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:755:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:754:5
|
LL | #[no_main] impl S { }
| ^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:755:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:754:5
|
LL | #[no_main] impl S { }
| ^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:773:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:772:1
|
LL | #[recursion_limit="0200"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:773:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:772:1
|
LL | #[recursion_limit="0200"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:777:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:776:17
|
LL | mod inner { #![recursion_limit="0200"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:777:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:776:17
|
LL | mod inner { #![recursion_limit="0200"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:781:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:780:5
|
LL | #[recursion_limit="0200"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:781:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:780:5
|
LL | #[recursion_limit="0200"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:785:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:784:5
|
LL | #[recursion_limit="0200"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:785:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:784:5
|
LL | #[recursion_limit="0200"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:789:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:788:5
|
LL | #[recursion_limit="0200"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:789:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:788:5
|
LL | #[recursion_limit="0200"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:793:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:792:5
|
LL | #[recursion_limit="0200"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:793:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:792:5
|
LL | #[recursion_limit="0200"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:798:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:797:1
|
LL | #[type_length_limit="0100"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:798:1
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:797:1
|
LL | #[type_length_limit="0100"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:802:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:801:17
|
LL | mod inner { #![type_length_limit="0100"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be in the root module
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:802:17
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:801:17
|
LL | mod inner { #![type_length_limit="0100"] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:806:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:805:5
|
LL | #[type_length_limit="0100"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:806:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:805:5
|
LL | #[type_length_limit="0100"] fn f() { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:810:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:809:5
|
LL | #[type_length_limit="0100"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:810:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:809:5
|
LL | #[type_length_limit="0100"] struct S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:814:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:813:5
|
LL | #[type_length_limit="0100"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:814:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:813:5
|
LL | #[type_length_limit="0100"] type T = S;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unused attribute
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:818:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:817:5
|
LL | #[type_length_limit="0100"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
- --> $DIR/issue-43106-gating-of-builtin-attrs.rs:818:5
+ --> $DIR/issue-43106-gating-of-builtin-attrs.rs:817:5
|
LL | #[type_length_limit="0100"] impl S { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-// ignore-tidy-linelength
// edition:2018
#![feature(impl_trait_in_bindings)]
warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/bound-normalization-fail.rs:4:12
+ --> $DIR/bound-normalization-fail.rs:3:12
|
LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as impl_trait::Trait>::Assoc`
- --> $DIR/bound-normalization-fail.rs:27:32
+ --> $DIR/bound-normalization-fail.rs:26:32
|
LL | fn foo_fail<T: Trait>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
| ^^^^^^^^^^^^
error[E0760]: `impl Trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope
- --> $DIR/bound-normalization-fail.rs:43:41
+ --> $DIR/bound-normalization-fail.rs:42:41
|
LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as lifetimes::Trait<'static>>::Assoc`
- --> $DIR/bound-normalization-fail.rs:43:41
+ --> $DIR/bound-normalization-fail.rs:42:41
|
LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output=T::Assoc> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()`
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/issue-55872-1.rs:4:32
+ --> $DIR/issue-55872-1.rs:3:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0276]: impl has stricter requirements than trait
- --> $DIR/issue-55872-1.rs:18:5
+ --> $DIR/issue-55872-1.rs:17:5
|
LL | fn foo<T>() -> Self::E;
| ----------------------- definition of `foo` from trait
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
- --> $DIR/issue-55872-1.rs:14:14
+ --> $DIR/issue-55872-1.rs:13:14
|
LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
| ^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
- --> $DIR/issue-55872-1.rs:14:14
+ --> $DIR/issue-55872-1.rs:13:14
|
LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
| ^^^^^^^^^^^^^^^^^^^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872-1.rs:18:37
+ --> $DIR/issue-55872-1.rs:17:37
|
LL | fn foo<T: Default>() -> Self::E {
| _____________________________________^
error[E0276]: impl has stricter requirements than trait
- --> $DIR/issue-55872-1.rs:18:5
+ --> $DIR/issue-55872-1.rs:17:5
|
LL | fn foo<T>() -> Self::E;
| ----------------------- definition of `foo` from trait
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
- --> $DIR/issue-55872-1.rs:14:14
+ --> $DIR/issue-55872-1.rs:13:14
|
LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
| ^^^^^^^^^^^^^^^^^^^
error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
- --> $DIR/issue-55872-1.rs:14:14
+ --> $DIR/issue-55872-1.rs:13:14
|
LL | type E = impl Copy;
| ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
| ^^^^^^^^^^^^^^^^^^^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872-1.rs:18:37
+ --> $DIR/issue-55872-1.rs:17:37
|
LL | fn foo<T: Default>() -> Self::E {
| _____________________________________^
-// ignore-tidy-linelength
// revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)]
#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/issue-55872-2.rs:7:32
+ --> $DIR/issue-55872-2.rs:6:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error[E0277]: the trait bound `impl Future: Copy` is not satisfied
- --> $DIR/issue-55872-2.rs:17:14
+ --> $DIR/issue-55872-2.rs:16:14
|
LL | type E = impl std::marker::Copy;
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872-2.rs:19:28
+ --> $DIR/issue-55872-2.rs:18:28
|
LL | fn foo<T>() -> Self::E {
| ____________________________^
error[E0277]: the trait bound `impl Future: Copy` is not satisfied
- --> $DIR/issue-55872-2.rs:17:14
+ --> $DIR/issue-55872-2.rs:16:14
|
LL | type E = impl std::marker::Copy;
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872-2.rs:19:28
+ --> $DIR/issue-55872-2.rs:18:28
|
LL | fn foo<T>() -> Self::E {
| ____________________________^
// edition:2018
-// ignore-tidy-linelength
// ignore-compare-mode-chalk
// revisions: min_tait full_tait
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/issue-55872.rs:5:32
+ --> $DIR/issue-55872.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872.rs:17:28
+ --> $DIR/issue-55872.rs:16:28
|
LL | fn foo<T>() -> Self::E {
| ____________________________^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-55872.rs:17:28
+ --> $DIR/issue-55872.rs:16:28
|
LL | fn foo<T>() -> Self::E {
| ____________________________^
-// ignore-tidy-linelength
// ignore-compare-mode-chalk
// revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)]
-// ignore-tidy-linelength
-
// aux-build:two_macros.rs
// compile-flags:--extern non_existent
error: macro-expanded `extern crate` items cannot shadow names passed with `--extern`
- --> $DIR/extern-prelude-extern-crate-fail.rs:18:9
+ --> $DIR/extern-prelude-extern-crate-fail.rs:16:9
|
LL | extern crate std as non_existent;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0433]: failed to resolve: use of undeclared crate or module `two_macros`
- --> $DIR/extern-prelude-extern-crate-fail.rs:12:9
+ --> $DIR/extern-prelude-extern-crate-fail.rs:10:9
|
LL | two_macros::m!();
| ^^^^^^^^^^ use of undeclared crate or module `two_macros`
--- /dev/null
+// Regression test for #81522.
+// Ensures that `#[allow(unstable_name_collisions)]` appended to things other than function
+// suppresses the corresponding diagnostics emitted from inside them.
+// But note that this attribute doesn't work for macro invocations if it is appended directly.
+
+// aux-build:inference_unstable_iterator.rs
+// aux-build:inference_unstable_itertools.rs
+// run-pass
+
+extern crate inference_unstable_iterator;
+extern crate inference_unstable_itertools;
+
+#[allow(unused_imports)]
+use inference_unstable_iterator::IpuIterator;
+use inference_unstable_itertools::IpuItertools;
+
+fn main() {
+ // expression statement
+ #[allow(unstable_name_collisions)]
+ 'x'.ipu_flatten();
+
+ // let statement
+ #[allow(unstable_name_collisions)]
+ let _ = 'x'.ipu_flatten();
+
+ // block expression
+ #[allow(unstable_name_collisions)]
+ {
+ 'x'.ipu_flatten();
+ }
+}
+++ /dev/null
-// run-pass
-#![allow(unused_attributes)]
-// ignore-windows
-// ignore-wasm32-bare no libs to link
-// ignore-sgx no libs to link
-#![feature(link_args)]
-
-#[link_args = "-lc -lm"]
-#[link_args = " -lc"]
-#[link_args = "-lc "]
-extern "C" {}
-
-fn main() {}
-// ignore-tidy-linelength
-
fn foo<T>() {
struct Foo {
x: T, //~ ERROR can't use generic parameters from outer function
error[E0401]: can't use generic parameters from outer function
- --> $DIR/issue-3214.rs:5:12
+ --> $DIR/issue-3214.rs:3:12
|
LL | fn foo<T>() {
| --- - type parameter from outer function
| ^ use of generic parameter from outer function
error[E0107]: this struct takes 0 type arguments but 1 type argument was supplied
- --> $DIR/issue-3214.rs:8:22
+ --> $DIR/issue-3214.rs:6:22
|
LL | impl<T> Drop for Foo<T> {
| ^^^--- help: remove these generics
| expected 0 type arguments
|
note: struct defined here, with 0 type parameters
- --> $DIR/issue-3214.rs:4:12
+ --> $DIR/issue-3214.rs:2:12
|
LL | struct Foo {
| ^^^
error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
- --> $DIR/issue-3214.rs:8:10
+ --> $DIR/issue-3214.rs:6:10
|
LL | impl<T> Drop for Foo<T> {
| ^ unconstrained type parameter
#![allow(unused)]
-// ignore-tidy-linelength
#[derive(Clone, Copy, Default)]
struct S {
error[E0502]: cannot borrow `u` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`)
- --> $DIR/issue-45157.rs:28:20
+ --> $DIR/issue-45157.rs:27:20
|
LL | let mref = &mut u.s.a;
| ---------- mutable borrow occurs here (via `u.s.a`)
-// ignore-tidy-linelength
#![warn(unused_attributes)] //~ NOTE lint level is defined here
#[link_name = "foo"]
error: malformed `link_name` attribute input
- --> $DIR/issue-47725.rs:18:1
+ --> $DIR/issue-47725.rs:17:1
|
LL | #[link_name]
| ^^^^^^^^^^^^ help: must be of the form: `#[link_name = "name"]`
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-47725.rs:4:1
+ --> $DIR/issue-47725.rs:3:1
|
LL | #[link_name = "foo"]
| ^^^^^^^^^^^^^^^^^^^^
| ----------- not a foreign function or static
|
note: the lint level is defined here
- --> $DIR/issue-47725.rs:2:9
+ --> $DIR/issue-47725.rs:1:9
|
LL | #![warn(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-47725.rs:9:1
+ --> $DIR/issue-47725.rs:8:1
|
LL | #[link_name = "foobar"]
| ^^^^^^^^^^^^^^^^^^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
help: try `#[link(name = "foobar")]` instead
- --> $DIR/issue-47725.rs:9:1
+ --> $DIR/issue-47725.rs:8:1
|
LL | #[link_name = "foobar"]
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: attribute should be applied to a foreign function or static
- --> $DIR/issue-47725.rs:18:1
+ --> $DIR/issue-47725.rs:17:1
|
LL | #[link_name]
| ^^^^^^^^^^^^
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
help: try `#[link(name = "...")]` instead
- --> $DIR/issue-47725.rs:18:1
+ --> $DIR/issue-47725.rs:17:1
|
LL | #[link_name]
| ^^^^^^^^^^^^
-// ignore-tidy-linelength
-
struct S;
impl S {
error[E0107]: this associated function takes 0 type arguments but 1 type argument was supplied
- --> $DIR/issue-53251.rs:13:20
+ --> $DIR/issue-53251.rs:11:20
|
LL | S::f::<i64>();
| ^------- help: remove these generics
| --------------- in this macro invocation
|
note: associated function defined here, with 0 type parameters
- --> $DIR/issue-53251.rs:6:8
+ --> $DIR/issue-53251.rs:4:8
|
LL | fn f() {}
| ^
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0107]: this associated function takes 0 type arguments but 1 type argument was supplied
- --> $DIR/issue-53251.rs:13:20
+ --> $DIR/issue-53251.rs:11:20
|
LL | S::f::<i64>();
| ^------- help: remove these generics
| --------------- in this macro invocation
|
note: associated function defined here, with 0 type parameters
- --> $DIR/issue-53251.rs:6:8
+ --> $DIR/issue-53251.rs:4:8
|
LL | fn f() {}
| ^
-// ignore-tidy-linelength
#![deny(unused_attributes)] //~ NOTE lint level is defined here
#[cold]
error: attribute should be applied to a function
- --> $DIR/issue-54044.rs:4:1
+ --> $DIR/issue-54044.rs:3:1
|
LL | #[cold]
| ^^^^^^^
| ----------- not a function
|
note: the lint level is defined here
- --> $DIR/issue-54044.rs:2:9
+ --> $DIR/issue-54044.rs:1:9
|
LL | #![deny(unused_attributes)]
| ^^^^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
error: attribute should be applied to a function
- --> $DIR/issue-54044.rs:10:5
+ --> $DIR/issue-54044.rs:9:5
|
LL | #[cold]
| ^^^^^^^
-// ignore-tidy-linelength
-
#![deny(warnings)]
struct Borked {}
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/issue-60622.rs:12:11
+ --> $DIR/issue-60622.rs:10:11
|
LL | fn a(&self) {}
| - the late bound lifetime parameter is introduced here
| ^^
|
note: the lint level is defined here
- --> $DIR/issue-60622.rs:3:9
+ --> $DIR/issue-60622.rs:1:9
|
LL | #![deny(warnings)]
| ^^^^^^^^
= note: for more information, see issue #42868 <https://github.com/rust-lang/rust/issues/42868>
error[E0107]: this associated function takes 0 type arguments but 1 type argument was supplied
- --> $DIR/issue-60622.rs:12:7
+ --> $DIR/issue-60622.rs:10:7
|
LL | b.a::<'_, T>();
| ^ --- help: remove this type argument
| expected 0 type arguments
|
note: associated function defined here, with 0 type parameters
- --> $DIR/issue-60622.rs:8:8
+ --> $DIR/issue-60622.rs:6:8
|
LL | fn a(&self) {}
| ^
// run-pass
// compile-flags: -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Copt-level=0 -Cdebuginfo=2
-// ignore-tidy-linelength
// Make sure LLVM does not miscompile this.
-// ignore-tidy-linelength
-
-
impl u8 {
//~^ error: only a single inherent implementation marked with `#[lang = "u8"]` is allowed for the `u8` primitive
pub const B: u8 = 0;
error[E0390]: only a single inherent implementation marked with `#[lang = "u8"]` is allowed for the `u8` primitive
- --> $DIR/kinds-of-primitive-impl.rs:4:1
+ --> $DIR/kinds-of-primitive-impl.rs:1:1
|
LL | / impl u8 {
LL | |
= help: consider using a trait to implement this constant
error[E0390]: only a single inherent implementation marked with `#[lang = "str"]` is allowed for the `str` primitive
- --> $DIR/kinds-of-primitive-impl.rs:9:1
+ --> $DIR/kinds-of-primitive-impl.rs:6:1
|
LL | / impl str {
LL | |
= help: consider using a trait to implement these methods
error[E0390]: only a single inherent implementation marked with `#[lang = "char"]` is allowed for the `char` primitive
- --> $DIR/kinds-of-primitive-impl.rs:15:1
+ --> $DIR/kinds-of-primitive-impl.rs:12:1
|
LL | / impl char {
LL | |
+++ /dev/null
-// build-fail
-// dont-check-compiler-stderr
-// ignore-msvc due to linker-flavor=ld
-// error-pattern:aFdEfSeVEEE
-// compile-flags: -C linker-flavor=ld
-
-/* Make sure invalid link_args are printed to stderr. */
-
-#![feature(link_args)]
-
-#[link_args = "aFdEfSeVEEE"]
-extern "C" {}
-
-fn main() {}
// aux-build:inherited_stability.rs
// aux-build:stability_cfg1.rs
// aux-build:stability-cfg2.rs
-// ignore-tidy-linelength
#![warn(deprecated)]
#![feature(staged_api, unstable_test_feature)]
warning: use of deprecated function `lint_stability::deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:25:9
+ --> $DIR/lint-stability-deprecated.rs:24:9
|
LL | deprecated();
| ^^^^^^^^^^
|
note: the lint level is defined here
- --> $DIR/lint-stability-deprecated.rs:7:9
+ --> $DIR/lint-stability-deprecated.rs:6:9
|
LL | #![warn(deprecated)]
| ^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:30:9
+ --> $DIR/lint-stability-deprecated.rs:29:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:32:9
+ --> $DIR/lint-stability-deprecated.rs:31:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:34:9
+ --> $DIR/lint-stability-deprecated.rs:33:9
|
LL | deprecated_text();
| ^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:39:9
+ --> $DIR/lint-stability-deprecated.rs:38:9
|
LL | ... Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:41:9
+ --> $DIR/lint-stability-deprecated.rs:40:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:43:9
+ --> $DIR/lint-stability-deprecated.rs:42:9
|
LL | deprecated_unstable();
| ^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:48:9
+ --> $DIR/lint-stability-deprecated.rs:47:9
|
LL | ... Trait::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:50:9
+ --> $DIR/lint-stability-deprecated.rs:49:9
|
LL | ... <Foo as Trait>::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:52:9
+ --> $DIR/lint-stability-deprecated.rs:51:9
|
LL | deprecated_unstable_text();
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:57:9
+ --> $DIR/lint-stability-deprecated.rs:56:9
|
LL | ... Trait::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:59:9
+ --> $DIR/lint-stability-deprecated.rs:58:9
|
LL | ... <Foo as Trait>::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedStruct`: text
- --> $DIR/lint-stability-deprecated.rs:109:17
+ --> $DIR/lint-stability-deprecated.rs:108:17
|
LL | let _ = DeprecatedStruct {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedUnstableStruct`: text
- --> $DIR/lint-stability-deprecated.rs:112:17
+ --> $DIR/lint-stability-deprecated.rs:111:17
|
LL | let _ = DeprecatedUnstableStruct {
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedUnitStruct`: text
- --> $DIR/lint-stability-deprecated.rs:119:17
+ --> $DIR/lint-stability-deprecated.rs:118:17
|
LL | let _ = DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedUnstableUnitStruct`: text
- --> $DIR/lint-stability-deprecated.rs:120:17
+ --> $DIR/lint-stability-deprecated.rs:119:17
|
LL | let _ = DeprecatedUnstableUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated variant `lint_stability::Enum::DeprecatedVariant`: text
- --> $DIR/lint-stability-deprecated.rs:124:17
+ --> $DIR/lint-stability-deprecated.rs:123:17
|
LL | let _ = Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated variant `lint_stability::Enum::DeprecatedUnstableVariant`: text
- --> $DIR/lint-stability-deprecated.rs:125:17
+ --> $DIR/lint-stability-deprecated.rs:124:17
|
LL | let _ = Enum::DeprecatedUnstableVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedTupleStruct`: text
- --> $DIR/lint-stability-deprecated.rs:129:17
+ --> $DIR/lint-stability-deprecated.rs:128:17
|
LL | let _ = DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `lint_stability::DeprecatedUnstableTupleStruct`: text
- --> $DIR/lint-stability-deprecated.rs:130:17
+ --> $DIR/lint-stability-deprecated.rs:129:17
|
LL | let _ = DeprecatedUnstableTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:139:25
+ --> $DIR/lint-stability-deprecated.rs:138:25
|
LL | macro_test_arg!(deprecated_text());
| ^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:140:25
+ --> $DIR/lint-stability-deprecated.rs:139:25
|
LL | macro_test_arg!(deprecated_unstable_text());
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `lint_stability::deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:141:41
+ --> $DIR/lint-stability-deprecated.rs:140:41
|
LL | macro_test_arg!(macro_test_arg!(deprecated_text()));
| ^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:146:9
+ --> $DIR/lint-stability-deprecated.rs:145:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:148:9
+ --> $DIR/lint-stability-deprecated.rs:147:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:150:9
+ --> $DIR/lint-stability-deprecated.rs:149:9
|
LL | ... Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:152:9
+ --> $DIR/lint-stability-deprecated.rs:151:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:154:9
+ --> $DIR/lint-stability-deprecated.rs:153:9
|
LL | ... Trait::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:156:9
+ --> $DIR/lint-stability-deprecated.rs:155:9
|
LL | ... <Foo as Trait>::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:158:9
+ --> $DIR/lint-stability-deprecated.rs:157:9
|
LL | ... Trait::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:160:9
+ --> $DIR/lint-stability-deprecated.rs:159:9
|
LL | ... <Foo as Trait>::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated trait `lint_stability::DeprecatedTrait`: text
- --> $DIR/lint-stability-deprecated.rs:188:10
+ --> $DIR/lint-stability-deprecated.rs:187:10
|
LL | impl DeprecatedTrait for S {}
| ^^^^^^^^^^^^^^^
warning: use of deprecated trait `lint_stability::DeprecatedTrait`: text
- --> $DIR/lint-stability-deprecated.rs:190:25
+ --> $DIR/lint-stability-deprecated.rs:189:25
|
LL | trait LocalTrait2 : DeprecatedTrait { }
| ^^^^^^^^^^^^^^^
warning: use of deprecated function `inheritance::inherited_stability::unstable_mod::deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:209:9
+ --> $DIR/lint-stability-deprecated.rs:208:9
|
LL | unstable_mod::deprecated();
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `this_crate::deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:331:9
+ --> $DIR/lint-stability-deprecated.rs:330:9
|
LL | deprecated();
| ^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:336:9
+ --> $DIR/lint-stability-deprecated.rs:335:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:338:9
+ --> $DIR/lint-stability-deprecated.rs:337:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `this_crate::deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:340:9
+ --> $DIR/lint-stability-deprecated.rs:339:9
|
LL | deprecated_text();
| ^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:345:9
+ --> $DIR/lint-stability-deprecated.rs:344:9
|
LL | Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:347:9
+ --> $DIR/lint-stability-deprecated.rs:346:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated struct `this_crate::DeprecatedStruct`: text
- --> $DIR/lint-stability-deprecated.rs:385:17
+ --> $DIR/lint-stability-deprecated.rs:384:17
|
LL | let _ = DeprecatedStruct {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated unit struct `this_crate::DeprecatedUnitStruct`: text
- --> $DIR/lint-stability-deprecated.rs:392:17
+ --> $DIR/lint-stability-deprecated.rs:391:17
|
LL | let _ = DeprecatedUnitStruct;
| ^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated unit variant `this_crate::Enum::DeprecatedVariant`: text
- --> $DIR/lint-stability-deprecated.rs:396:17
+ --> $DIR/lint-stability-deprecated.rs:395:17
|
LL | let _ = Enum::DeprecatedVariant;
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated tuple struct `this_crate::DeprecatedTupleStruct`: text
- --> $DIR/lint-stability-deprecated.rs:400:17
+ --> $DIR/lint-stability-deprecated.rs:399:17
|
LL | let _ = DeprecatedTupleStruct (1);
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:407:9
+ --> $DIR/lint-stability-deprecated.rs:406:9
|
LL | Trait::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:409:9
+ --> $DIR/lint-stability-deprecated.rs:408:9
|
LL | <Foo as Trait>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:411:9
+ --> $DIR/lint-stability-deprecated.rs:410:9
|
LL | Trait::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:413:9
+ --> $DIR/lint-stability-deprecated.rs:412:9
|
LL | ... <Foo as Trait>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated function `this_crate::test_fn_body::fn_in_body`: text
- --> $DIR/lint-stability-deprecated.rs:440:9
+ --> $DIR/lint-stability-deprecated.rs:439:9
|
LL | fn_in_body();
| ^^^^^^^^^^
warning: use of deprecated trait `this_crate::DeprecatedTrait`: text
- --> $DIR/lint-stability-deprecated.rs:460:10
+ --> $DIR/lint-stability-deprecated.rs:459:10
|
LL | impl DeprecatedTrait for S { }
| ^^^^^^^^^^^^^^^
warning: use of deprecated trait `this_crate::DeprecatedTrait`: text
- --> $DIR/lint-stability-deprecated.rs:462:24
+ --> $DIR/lint-stability-deprecated.rs:461:24
|
LL | trait LocalTrait : DeprecatedTrait { }
| ^^^^^^^^^^^^^^^
warning: use of deprecated function `this_crate::MethodTester::test_method_body::fn_in_body`: text
- --> $DIR/lint-stability-deprecated.rs:448:13
+ --> $DIR/lint-stability-deprecated.rs:447:13
|
LL | fn_in_body();
| ^^^^^^^^^^
warning: use of deprecated associated type `lint_stability::TraitWithAssociatedTypes::TypeDeprecated`: text
- --> $DIR/lint-stability-deprecated.rs:98:48
+ --> $DIR/lint-stability-deprecated.rs:97:48
|
LL | struct S2<T: TraitWithAssociatedTypes>(T::TypeDeprecated);
| ^^^^^^^^^^^^^^^^^
warning: use of deprecated associated type `lint_stability::TraitWithAssociatedTypes::TypeDeprecated`: text
- --> $DIR/lint-stability-deprecated.rs:103:13
+ --> $DIR/lint-stability-deprecated.rs:102:13
|
LL | TypeDeprecated = u16,
| ^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:26:13
+ --> $DIR/lint-stability-deprecated.rs:25:13
|
LL | foo.method_deprecated();
| ^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:27:9
+ --> $DIR/lint-stability-deprecated.rs:26:9
|
LL | Foo::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:28:9
+ --> $DIR/lint-stability-deprecated.rs:27:9
|
LL | <Foo>::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:29:13
+ --> $DIR/lint-stability-deprecated.rs:28:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:31:9
+ --> $DIR/lint-stability-deprecated.rs:30:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:35:13
+ --> $DIR/lint-stability-deprecated.rs:34:13
|
LL | ... foo.method_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:36:9
+ --> $DIR/lint-stability-deprecated.rs:35:9
|
LL | ... Foo::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:37:9
+ --> $DIR/lint-stability-deprecated.rs:36:9
|
LL | ... <Foo>::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:38:13
+ --> $DIR/lint-stability-deprecated.rs:37:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:40:9
+ --> $DIR/lint-stability-deprecated.rs:39:9
|
LL | ... <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:44:13
+ --> $DIR/lint-stability-deprecated.rs:43:13
|
LL | ... foo.method_deprecated_unstable();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:45:9
+ --> $DIR/lint-stability-deprecated.rs:44:9
|
LL | ... Foo::method_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:46:9
+ --> $DIR/lint-stability-deprecated.rs:45:9
|
LL | ... <Foo>::method_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:47:13
+ --> $DIR/lint-stability-deprecated.rs:46:13
|
LL | foo.trait_deprecated_unstable();
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:49:9
+ --> $DIR/lint-stability-deprecated.rs:48:9
|
LL | ... <Foo>::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:53:13
+ --> $DIR/lint-stability-deprecated.rs:52:13
|
LL | ... foo.method_deprecated_unstable_text();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:54:9
+ --> $DIR/lint-stability-deprecated.rs:53:9
|
LL | ... Foo::method_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::MethodTester::method_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:55:9
+ --> $DIR/lint-stability-deprecated.rs:54:9
|
LL | ... <Foo>::method_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:56:13
+ --> $DIR/lint-stability-deprecated.rs:55:13
|
LL | ... foo.trait_deprecated_unstable_text();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:58:9
+ --> $DIR/lint-stability-deprecated.rs:57:9
|
LL | ... <Foo>::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated field `lint_stability::DeprecatedStruct::i`: text
- --> $DIR/lint-stability-deprecated.rs:110:13
+ --> $DIR/lint-stability-deprecated.rs:109:13
|
LL | i: 0
| ^^^^
warning: use of deprecated field `lint_stability::DeprecatedUnstableStruct::i`: text
- --> $DIR/lint-stability-deprecated.rs:114:13
+ --> $DIR/lint-stability-deprecated.rs:113:13
|
LL | i: 0
| ^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:145:13
+ --> $DIR/lint-stability-deprecated.rs:144:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:147:9
+ --> $DIR/lint-stability-deprecated.rs:146:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:149:13
+ --> $DIR/lint-stability-deprecated.rs:148:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:151:9
+ --> $DIR/lint-stability-deprecated.rs:150:9
|
LL | ... <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:153:13
+ --> $DIR/lint-stability-deprecated.rs:152:13
|
LL | foo.trait_deprecated_unstable();
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:155:9
+ --> $DIR/lint-stability-deprecated.rs:154:9
|
LL | ... <Foo>::trait_deprecated_unstable(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:157:13
+ --> $DIR/lint-stability-deprecated.rs:156:13
|
LL | ... foo.trait_deprecated_unstable_text();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:159:9
+ --> $DIR/lint-stability-deprecated.rs:158:9
|
LL | ... <Foo>::trait_deprecated_unstable_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:176:13
+ --> $DIR/lint-stability-deprecated.rs:175:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:177:13
+ --> $DIR/lint-stability-deprecated.rs:176:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable`: text
- --> $DIR/lint-stability-deprecated.rs:178:13
+ --> $DIR/lint-stability-deprecated.rs:177:13
|
LL | foo.trait_deprecated_unstable();
| ^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `lint_stability::Trait::trait_deprecated_unstable_text`: text
- --> $DIR/lint-stability-deprecated.rs:179:13
+ --> $DIR/lint-stability-deprecated.rs:178:13
|
LL | ... foo.trait_deprecated_unstable_text();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:332:13
+ --> $DIR/lint-stability-deprecated.rs:331:13
|
LL | foo.method_deprecated();
| ^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:333:9
+ --> $DIR/lint-stability-deprecated.rs:332:9
|
LL | Foo::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:334:9
+ --> $DIR/lint-stability-deprecated.rs:333:9
|
LL | <Foo>::method_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:335:13
+ --> $DIR/lint-stability-deprecated.rs:334:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:337:9
+ --> $DIR/lint-stability-deprecated.rs:336:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:341:13
+ --> $DIR/lint-stability-deprecated.rs:340:13
|
LL | ... foo.method_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:342:9
+ --> $DIR/lint-stability-deprecated.rs:341:9
|
LL | ... Foo::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:343:9
+ --> $DIR/lint-stability-deprecated.rs:342:9
|
LL | ... <Foo>::method_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:344:13
+ --> $DIR/lint-stability-deprecated.rs:343:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:346:9
+ --> $DIR/lint-stability-deprecated.rs:345:9
|
LL | <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated field `this_crate::DeprecatedStruct::i`: text
- --> $DIR/lint-stability-deprecated.rs:387:13
+ --> $DIR/lint-stability-deprecated.rs:386:13
|
LL | i: 0
| ^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:406:13
+ --> $DIR/lint-stability-deprecated.rs:405:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:408:9
+ --> $DIR/lint-stability-deprecated.rs:407:9
|
LL | <Foo>::trait_deprecated(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:410:13
+ --> $DIR/lint-stability-deprecated.rs:409:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:412:9
+ --> $DIR/lint-stability-deprecated.rs:411:9
|
LL | <Foo>::trait_deprecated_text(&foo);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated`: text
- --> $DIR/lint-stability-deprecated.rs:429:13
+ --> $DIR/lint-stability-deprecated.rs:428:13
|
LL | foo.trait_deprecated();
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- --> $DIR/lint-stability-deprecated.rs:430:13
+ --> $DIR/lint-stability-deprecated.rs:429:13
|
LL | foo.trait_deprecated_text();
| ^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated type `lint_stability::TraitWithAssociatedTypes::TypeDeprecated`: text
- --> $DIR/lint-stability-deprecated.rs:98:48
+ --> $DIR/lint-stability-deprecated.rs:97:48
|
LL | struct S2<T: TraitWithAssociatedTypes>(T::TypeDeprecated);
| ^^^^^^^^^^^^^^^^^
warning: use of deprecated associated type `lint_stability::TraitWithAssociatedTypes::TypeDeprecated`: text
- --> $DIR/lint-stability-deprecated.rs:103:13
+ --> $DIR/lint-stability-deprecated.rs:102:13
|
LL | TypeDeprecated = u16,
| ^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated type `lint_stability::TraitWithAssociatedTypes::TypeDeprecated`: text
- --> $DIR/lint-stability-deprecated.rs:103:13
+ --> $DIR/lint-stability-deprecated.rs:102:13
|
LL | TypeDeprecated = u16,
| ^^^^^^^^^^^^^^^^^^^^
-// ignore-tidy-linelength
// This test checks that calling `mem::{uninitialized,zeroed}` with certain types results
// in a lint.
error: the type `&T` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:41:32
+ --> $DIR/uninitialized-zeroed.rs:40:32
|
LL | let _val: &'static T = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: the lint level is defined here
- --> $DIR/uninitialized-zeroed.rs:7:9
+ --> $DIR/uninitialized-zeroed.rs:6:9
|
LL | #![deny(invalid_value)]
| ^^^^^^^^^^^^^
= note: references must be non-null
error: the type `&T` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:42:32
+ --> $DIR/uninitialized-zeroed.rs:41:32
|
LL | let _val: &'static T = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: references must be non-null
error: the type `Wrap<&T>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:44:38
+ --> $DIR/uninitialized-zeroed.rs:43:38
|
LL | let _val: Wrap<&'static T> = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:18:18
+ --> $DIR/uninitialized-zeroed.rs:17:18
|
LL | struct Wrap<T> { wrapped: T }
| ^^^^^^^^^^
error: the type `Wrap<&T>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:45:38
+ --> $DIR/uninitialized-zeroed.rs:44:38
|
LL | let _val: Wrap<&'static T> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:18:18
+ --> $DIR/uninitialized-zeroed.rs:17:18
|
LL | struct Wrap<T> { wrapped: T }
| ^^^^^^^^^^
error: the type `!` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:52:23
+ --> $DIR/uninitialized-zeroed.rs:51:23
|
LL | let _val: ! = mem::zeroed();
| ^^^^^^^^^^^^^
= note: the `!` type has no valid value
error: the type `!` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:53:23
+ --> $DIR/uninitialized-zeroed.rs:52:23
|
LL | let _val: ! = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: the `!` type has no valid value
error: the type `(i32, !)` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:55:30
+ --> $DIR/uninitialized-zeroed.rs:54:30
|
LL | let _val: (i32, !) = mem::zeroed();
| ^^^^^^^^^^^^^
= note: the `!` type has no valid value
error: the type `(i32, !)` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:56:30
+ --> $DIR/uninitialized-zeroed.rs:55:30
|
LL | let _val: (i32, !) = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: the `!` type has no valid value
error: the type `Void` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:58:26
+ --> $DIR/uninitialized-zeroed.rs:57:26
|
LL | let _val: Void = mem::zeroed();
| ^^^^^^^^^^^^^
= note: enums with no variants have no valid value
error: the type `Void` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:59:26
+ --> $DIR/uninitialized-zeroed.rs:58:26
|
LL | let _val: Void = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: enums with no variants have no valid value
error: the type `&i32` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:61:34
+ --> $DIR/uninitialized-zeroed.rs:60:34
|
LL | let _val: &'static i32 = mem::zeroed();
| ^^^^^^^^^^^^^
= note: references must be non-null
error: the type `&i32` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:62:34
+ --> $DIR/uninitialized-zeroed.rs:61:34
|
LL | let _val: &'static i32 = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: references must be non-null
error: the type `Ref` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:64:25
+ --> $DIR/uninitialized-zeroed.rs:63:25
|
LL | let _val: Ref = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:15:12
+ --> $DIR/uninitialized-zeroed.rs:14:12
|
LL | struct Ref(&'static i32);
| ^^^^^^^^^^^^
error: the type `Ref` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:65:25
+ --> $DIR/uninitialized-zeroed.rs:64:25
|
LL | let _val: Ref = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:15:12
+ --> $DIR/uninitialized-zeroed.rs:14:12
|
LL | struct Ref(&'static i32);
| ^^^^^^^^^^^^
error: the type `fn()` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:67:26
+ --> $DIR/uninitialized-zeroed.rs:66:26
|
LL | let _val: fn() = mem::zeroed();
| ^^^^^^^^^^^^^
= note: function pointers must be non-null
error: the type `fn()` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:68:26
+ --> $DIR/uninitialized-zeroed.rs:67:26
|
LL | let _val: fn() = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: function pointers must be non-null
error: the type `Wrap<fn()>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:70:32
+ --> $DIR/uninitialized-zeroed.rs:69:32
|
LL | let _val: Wrap<fn()> = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: function pointers must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:18:18
+ --> $DIR/uninitialized-zeroed.rs:17:18
|
LL | struct Wrap<T> { wrapped: T }
| ^^^^^^^^^^
error: the type `Wrap<fn()>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:71:32
+ --> $DIR/uninitialized-zeroed.rs:70:32
|
LL | let _val: Wrap<fn()> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: function pointers must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:18:18
+ --> $DIR/uninitialized-zeroed.rs:17:18
|
LL | struct Wrap<T> { wrapped: T }
| ^^^^^^^^^^
error: the type `WrapEnum<fn()>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:73:36
+ --> $DIR/uninitialized-zeroed.rs:72:36
|
LL | let _val: WrapEnum<fn()> = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: function pointers must be non-null (in this enum field)
- --> $DIR/uninitialized-zeroed.rs:19:28
+ --> $DIR/uninitialized-zeroed.rs:18:28
|
LL | enum WrapEnum<T> { Wrapped(T) }
| ^
error: the type `WrapEnum<fn()>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:74:36
+ --> $DIR/uninitialized-zeroed.rs:73:36
|
LL | let _val: WrapEnum<fn()> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: function pointers must be non-null (in this enum field)
- --> $DIR/uninitialized-zeroed.rs:19:28
+ --> $DIR/uninitialized-zeroed.rs:18:28
|
LL | enum WrapEnum<T> { Wrapped(T) }
| ^
error: the type `Wrap<(RefPair, i32)>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:76:42
+ --> $DIR/uninitialized-zeroed.rs:75:42
|
LL | let _val: Wrap<(RefPair, i32)> = mem::zeroed();
| ^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:16:16
+ --> $DIR/uninitialized-zeroed.rs:15:16
|
LL | struct RefPair((&'static i32, i32));
| ^^^^^^^^^^^^^^^^^^^
error: the type `Wrap<(RefPair, i32)>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:77:42
+ --> $DIR/uninitialized-zeroed.rs:76:42
|
LL | let _val: Wrap<(RefPair, i32)> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: references must be non-null (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:16:16
+ --> $DIR/uninitialized-zeroed.rs:15:16
|
LL | struct RefPair((&'static i32, i32));
| ^^^^^^^^^^^^^^^^^^^
error: the type `NonNull<i32>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:79:34
+ --> $DIR/uninitialized-zeroed.rs:78:34
|
LL | let _val: NonNull<i32> = mem::zeroed();
| ^^^^^^^^^^^^^
= note: `std::ptr::NonNull<i32>` must be non-null
error: the type `NonNull<i32>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:80:34
+ --> $DIR/uninitialized-zeroed.rs:79:34
|
LL | let _val: NonNull<i32> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: `std::ptr::NonNull<i32>` must be non-null
error: the type `*const dyn Send` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:82:37
+ --> $DIR/uninitialized-zeroed.rs:81:37
|
LL | let _val: *const dyn Send = mem::zeroed();
| ^^^^^^^^^^^^^
= note: the vtable of a wide raw pointer must be non-null
error: the type `*const dyn Send` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:83:37
+ --> $DIR/uninitialized-zeroed.rs:82:37
|
LL | let _val: *const dyn Send = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: the vtable of a wide raw pointer must be non-null
error: the type `bool` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:87:26
+ --> $DIR/uninitialized-zeroed.rs:86:26
|
LL | let _val: bool = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: booleans must be either `true` or `false`
error: the type `Wrap<char>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:90:32
+ --> $DIR/uninitialized-zeroed.rs:89:32
|
LL | let _val: Wrap<char> = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: characters must be a valid Unicode codepoint (in this struct field)
- --> $DIR/uninitialized-zeroed.rs:18:18
+ --> $DIR/uninitialized-zeroed.rs:17:18
|
LL | struct Wrap<T> { wrapped: T }
| ^^^^^^^^^^
error: the type `NonBig` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:93:28
+ --> $DIR/uninitialized-zeroed.rs:92:28
|
LL | let _val: NonBig = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
= note: `NonBig` must be initialized inside its custom valid range
error: the type `Fruit` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:96:27
+ --> $DIR/uninitialized-zeroed.rs:95:27
|
LL | let _val: Fruit = mem::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^
| help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
|
note: enums have to be initialized to a variant
- --> $DIR/uninitialized-zeroed.rs:27:1
+ --> $DIR/uninitialized-zeroed.rs:26:1
|
LL | / enum Fruit {
LL | | Apple,
| |_^
error: the type `&i32` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:99:34
+ --> $DIR/uninitialized-zeroed.rs:98:34
|
LL | let _val: &'static i32 = mem::transmute(0usize);
| ^^^^^^^^^^^^^^^^^^^^^^
= note: references must be non-null
error: the type `&[i32]` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:100:36
+ --> $DIR/uninitialized-zeroed.rs:99:36
|
LL | let _val: &'static [i32] = mem::transmute((0usize, 0usize));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: references must be non-null
error: the type `NonZeroU32` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:101:32
+ --> $DIR/uninitialized-zeroed.rs:100:32
|
LL | let _val: NonZeroU32 = mem::transmute(0);
| ^^^^^^^^^^^^^^^^^
= note: `std::num::NonZeroU32` must be non-null
error: the type `NonNull<i32>` does not permit zero-initialization
- --> $DIR/uninitialized-zeroed.rs:104:34
+ --> $DIR/uninitialized-zeroed.rs:103:34
|
LL | let _val: NonNull<i32> = MaybeUninit::zeroed().assume_init();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: `std::ptr::NonNull<i32>` must be non-null
error: the type `NonNull<i32>` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:105:34
+ --> $DIR/uninitialized-zeroed.rs:104:34
|
LL | let _val: NonNull<i32> = MaybeUninit::uninit().assume_init();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: `std::ptr::NonNull<i32>` must be non-null
error: the type `bool` does not permit being left uninitialized
- --> $DIR/uninitialized-zeroed.rs:106:26
+ --> $DIR/uninitialized-zeroed.rs:105:26
|
LL | let _val: bool = MaybeUninit::uninit().assume_init();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// check-pass
-// ignore-tidy-linelength
// Issue #21633: reject duplicate loop labels in function bodies.
//
warning: label name `'fl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:14:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:13:7
|
LL | { 'fl: for _ in 0..10 { break; } }
| --- first declared here
| ^^^ label `'fl` already in scope
warning: label name `'lf` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:16:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:15:7
|
LL | { 'lf: loop { break; } }
| --- first declared here
| ^^^ label `'lf` already in scope
warning: label name `'wl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:18:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:17:7
|
LL | { 'wl: while 2 > 1 { break; } }
| --- first declared here
| ^^^ label `'wl` already in scope
warning: label name `'lw` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:20:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:19:7
|
LL | { 'lw: loop { break; } }
| --- first declared here
| ^^^ label `'lw` already in scope
warning: label name `'fw` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:22:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:21:7
|
LL | { 'fw: for _ in 0..10 { break; } }
| --- first declared here
| ^^^ label `'fw` already in scope
warning: label name `'wf` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:24:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:23:7
|
LL | { 'wf: while 2 > 1 { break; } }
| --- first declared here
| ^^^ label `'wf` already in scope
warning: label name `'tl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:26:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:25:7
|
LL | { 'tl: while let Some(_) = None::<i32> { break; } }
| --- first declared here
| ^^^ label `'tl` already in scope
warning: label name `'lt` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels-2.rs:28:7
+ --> $DIR/loops-reject-duplicate-labels-2.rs:27:7
|
LL | { 'lt: loop { break; } }
| --- first declared here
// check-pass
-// ignore-tidy-linelength
// Issue #21633: reject duplicate loop labels in function bodies.
// This is testing the exact cases that are in the issue description.
warning: label name `'fl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:11:5
+ --> $DIR/loops-reject-duplicate-labels.rs:10:5
|
LL | 'fl: for _ in 0..10 { break; }
| --- first declared here
| ^^^ label `'fl` already in scope
warning: label name `'lf` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:14:5
+ --> $DIR/loops-reject-duplicate-labels.rs:13:5
|
LL | 'lf: loop { break; }
| --- first declared here
| ^^^ label `'lf` already in scope
warning: label name `'wl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:16:5
+ --> $DIR/loops-reject-duplicate-labels.rs:15:5
|
LL | 'wl: while 2 > 1 { break; }
| --- first declared here
| ^^^ label `'wl` already in scope
warning: label name `'lw` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:18:5
+ --> $DIR/loops-reject-duplicate-labels.rs:17:5
|
LL | 'lw: loop { break; }
| --- first declared here
| ^^^ label `'lw` already in scope
warning: label name `'fw` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:20:5
+ --> $DIR/loops-reject-duplicate-labels.rs:19:5
|
LL | 'fw: for _ in 0..10 { break; }
| --- first declared here
| ^^^ label `'fw` already in scope
warning: label name `'wf` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:22:5
+ --> $DIR/loops-reject-duplicate-labels.rs:21:5
|
LL | 'wf: while 2 > 1 { break; }
| --- first declared here
| ^^^ label `'wf` already in scope
warning: label name `'tl` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:24:5
+ --> $DIR/loops-reject-duplicate-labels.rs:23:5
|
LL | 'tl: while let Some(_) = None::<i32> { break; }
| --- first declared here
| ^^^ label `'tl` already in scope
warning: label name `'lt` shadows a label name that is already in scope
- --> $DIR/loops-reject-duplicate-labels.rs:26:5
+ --> $DIR/loops-reject-duplicate-labels.rs:25:5
|
LL | 'lt: loop { break; }
| --- first declared here
-// ignore-tidy-linelength
// run-rustfix
#![feature(edition_macro_pats)]
-// ignore-tidy-linelength
// run-rustfix
#![feature(edition_macro_pats)]
error: the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
- --> $DIR/macro-or-patterns-back-compat.rs:7:21
+ --> $DIR/macro-or-patterns-back-compat.rs:6:21
|
LL | macro_rules! foo { ($x:pat | $y:pat) => {} }
| ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015`
|
note: the lint level is defined here
- --> $DIR/macro-or-patterns-back-compat.rs:5:9
+ --> $DIR/macro-or-patterns-back-compat.rs:4:9
|
LL | #![deny(or_patterns_back_compat)]
| ^^^^^^^^^^^^^^^^^^^^^^^
error: the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
- --> $DIR/macro-or-patterns-back-compat.rs:8:23
+ --> $DIR/macro-or-patterns-back-compat.rs:7:23
|
LL | macro_rules! bar { ($($x:pat)+ | $($y:pat)+) => {} }
| ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015`
error: the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
- --> $DIR/macro-or-patterns-back-compat.rs:11:21
+ --> $DIR/macro-or-patterns-back-compat.rs:10:21
|
LL | macro_rules! ogg { ($x:pat | $y:pat2015) => {} }
| ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015`
error: the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
- --> $DIR/macro-or-patterns-back-compat.rs:13:26
+ --> $DIR/macro-or-patterns-back-compat.rs:12:26
|
LL | ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => {
| ^^^^^^^^ help: use pat2015 to preserve semantics: `$pat:pat2015`
-// ignore-tidy-linelength
-
struct S;
impl S {
error[E0107]: this associated function takes 2 lifetime arguments but only 1 lifetime argument was supplied
- --> $DIR/method-call-lifetime-args-fail.rs:18:7
+ --> $DIR/method-call-lifetime-args-fail.rs:16:7
|
LL | S.early::<'static>();
| ^^^^^ ------- supplied 1 lifetime argument
| expected 2 lifetime arguments
|
note: associated function defined here, with 2 lifetime parameters: `'a`, `'b`
- --> $DIR/method-call-lifetime-args-fail.rs:8:8
+ --> $DIR/method-call-lifetime-args-fail.rs:6:8
|
LL | fn early<'a, 'b>(self) -> (&'a u8, &'b u8) { loop {} }
| ^^^^^ -- --
| ^^^^
error[E0107]: this associated function takes 2 lifetime arguments but 3 lifetime arguments were supplied
- --> $DIR/method-call-lifetime-args-fail.rs:20:7
+ --> $DIR/method-call-lifetime-args-fail.rs:18:7
|
LL | S.early::<'static, 'static, 'static>();
| ^^^^^ --------- help: remove this lifetime argument
| expected 2 lifetime arguments
|
note: associated function defined here, with 2 lifetime parameters: `'a`, `'b`
- --> $DIR/method-call-lifetime-args-fail.rs:8:8
+ --> $DIR/method-call-lifetime-args-fail.rs:6:8
|
LL | fn early<'a, 'b>(self) -> (&'a u8, &'b u8) { loop {} }
| ^^^^^ -- --
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:29:15
+ --> $DIR/method-call-lifetime-args-fail.rs:27:15
|
LL | S::late::<'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:6:13
+ --> $DIR/method-call-lifetime-args-fail.rs:4:13
|
LL | fn late<'a, 'b>(self, _: &'a u8, _: &'b u8) {}
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:31:15
+ --> $DIR/method-call-lifetime-args-fail.rs:29:15
|
LL | S::late::<'static, 'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:6:13
+ --> $DIR/method-call-lifetime-args-fail.rs:4:13
|
LL | fn late<'a, 'b>(self, _: &'a u8, _: &'b u8) {}
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:33:15
+ --> $DIR/method-call-lifetime-args-fail.rs:31:15
|
LL | S::late::<'static, 'static, 'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:6:13
+ --> $DIR/method-call-lifetime-args-fail.rs:4:13
|
LL | fn late<'a, 'b>(self, _: &'a u8, _: &'b u8) {}
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:36:21
+ --> $DIR/method-call-lifetime-args-fail.rs:34:21
|
LL | S::late_early::<'static, 'static>(S, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:9:19
+ --> $DIR/method-call-lifetime-args-fail.rs:7:19
|
LL | fn late_early<'a, 'b>(self, _: &'a u8) -> &'b u8 { loop {} }
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:38:21
+ --> $DIR/method-call-lifetime-args-fail.rs:36:21
|
LL | S::late_early::<'static, 'static, 'static>(S, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:9:19
+ --> $DIR/method-call-lifetime-args-fail.rs:7:19
|
LL | fn late_early<'a, 'b>(self, _: &'a u8) -> &'b u8 { loop {} }
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:42:24
+ --> $DIR/method-call-lifetime-args-fail.rs:40:24
|
LL | S::late_implicit::<'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:7:31
+ --> $DIR/method-call-lifetime-args-fail.rs:5:31
|
LL | fn late_implicit(self, _: &u8, _: &u8) {}
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:44:24
+ --> $DIR/method-call-lifetime-args-fail.rs:42:24
|
LL | S::late_implicit::<'static, 'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:7:31
+ --> $DIR/method-call-lifetime-args-fail.rs:5:31
|
LL | fn late_implicit(self, _: &u8, _: &u8) {}
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:46:24
+ --> $DIR/method-call-lifetime-args-fail.rs:44:24
|
LL | S::late_implicit::<'static, 'static, 'static>(S, &0, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:7:31
+ --> $DIR/method-call-lifetime-args-fail.rs:5:31
|
LL | fn late_implicit(self, _: &u8, _: &u8) {}
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:49:30
+ --> $DIR/method-call-lifetime-args-fail.rs:47:30
|
LL | S::late_implicit_early::<'static, 'static>(S, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:10:41
+ --> $DIR/method-call-lifetime-args-fail.rs:8:41
|
LL | fn late_implicit_early<'b>(self, _: &u8) -> &'b u8 { loop {} }
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:51:30
+ --> $DIR/method-call-lifetime-args-fail.rs:49:30
|
LL | S::late_implicit_early::<'static, 'static, 'static>(S, &0);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:10:41
+ --> $DIR/method-call-lifetime-args-fail.rs:8:41
|
LL | fn late_implicit_early<'b>(self, _: &u8) -> &'b u8 { loop {} }
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:54:35
+ --> $DIR/method-call-lifetime-args-fail.rs:52:35
|
LL | S::late_implicit_self_early::<'static, 'static>(&S);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:11:37
+ --> $DIR/method-call-lifetime-args-fail.rs:9:37
|
LL | fn late_implicit_self_early<'b>(&self) -> &'b u8 { loop {} }
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:56:35
+ --> $DIR/method-call-lifetime-args-fail.rs:54:35
|
LL | S::late_implicit_self_early::<'static, 'static, 'static>(&S);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:11:37
+ --> $DIR/method-call-lifetime-args-fail.rs:9:37
|
LL | fn late_implicit_self_early<'b>(&self) -> &'b u8 { loop {} }
| ^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:59:28
+ --> $DIR/method-call-lifetime-args-fail.rs:57:28
|
LL | S::late_unused_early::<'static, 'static>(S);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:12:26
+ --> $DIR/method-call-lifetime-args-fail.rs:10:26
|
LL | fn late_unused_early<'a, 'b>(self) -> &'b u8 { loop {} }
| ^^
error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
- --> $DIR/method-call-lifetime-args-fail.rs:61:28
+ --> $DIR/method-call-lifetime-args-fail.rs:59:28
|
LL | S::late_unused_early::<'static, 'static, 'static>(S);
| ^^^^^^^
|
note: the late bound lifetime parameter is introduced here
- --> $DIR/method-call-lifetime-args-fail.rs:12:26
+ --> $DIR/method-call-lifetime-args-fail.rs:10:26
|
LL | fn late_unused_early<'a, 'b>(self) -> &'b u8 { loop {} }
| ^^
error[E0107]: this associated function takes 2 lifetime arguments but only 1 lifetime argument was supplied
- --> $DIR/method-call-lifetime-args-fail.rs:65:8
+ --> $DIR/method-call-lifetime-args-fail.rs:63:8
|
LL | S::early::<'static>(S);
| ^^^^^ ------- supplied 1 lifetime argument
| expected 2 lifetime arguments
|
note: associated function defined here, with 2 lifetime parameters: `'a`, `'b`
- --> $DIR/method-call-lifetime-args-fail.rs:8:8
+ --> $DIR/method-call-lifetime-args-fail.rs:6:8
|
LL | fn early<'a, 'b>(self) -> (&'a u8, &'b u8) { loop {} }
| ^^^^^ -- --
| ^^^^
error[E0107]: this associated function takes 2 lifetime arguments but 3 lifetime arguments were supplied
- --> $DIR/method-call-lifetime-args-fail.rs:67:8
+ --> $DIR/method-call-lifetime-args-fail.rs:65:8
|
LL | S::early::<'static, 'static, 'static>(S);
| ^^^^^ --------- help: remove this lifetime argument
| expected 2 lifetime arguments
|
note: associated function defined here, with 2 lifetime parameters: `'a`, `'b`
- --> $DIR/method-call-lifetime-args-fail.rs:8:8
+ --> $DIR/method-call-lifetime-args-fail.rs:6:8
|
LL | fn early<'a, 'b>(self) -> (&'a u8, &'b u8) { loop {} }
| ^^^^^ -- --
-// ignore-tidy-linelength
-
struct Bar;
impl Bar {
error[E0502]: cannot borrow `self.thing` as mutable because it is also borrowed as immutable
- --> $DIR/issue-51268.rs:16:9
+ --> $DIR/issue-51268.rs:14:9
|
LL | self.thing.bar(|| {
| ^ --- -- immutable borrow occurs here
#![allow(unused)]
-// ignore-tidy-linelength
// This tests the error messages for borrows of union fields when the unions are embedded in other
// structs or unions.
error[E0502]: cannot borrow `r.r2_union.f3_union` (via `r.r2_union.f3_union.s2_leaf.l1_u8`) as immutable because it is also borrowed as mutable (via `r.r2_union.f3_union.s1_leaf.l1_u8`)
- --> $DIR/issue-57100.rs:43:20
+ --> $DIR/issue-57100.rs:42:20
|
LL | let mref = &mut r.r2_union.f3_union.s1_leaf.l1_u8;
| -------------------------------------- mutable borrow occurs here (via `r.r2_union.f3_union.s1_leaf.l1_u8`)
= note: `r.r2_union.f3_union.s2_leaf.l1_u8` is a field of the union `Second`, so it overlaps the field `r.r2_union.f3_union.s1_leaf.l1_u8`
error[E0502]: cannot borrow `r.r2_union` (via `r.r2_union.f1_leaf.l1_u8`) as immutable because it is also borrowed as mutable (via `r.r2_union.f2_leaf.l1_u8`)
- --> $DIR/issue-57100.rs:61:20
+ --> $DIR/issue-57100.rs:60:20
|
LL | let mref = &mut r.r2_union.f2_leaf.l1_u8;
| ----------------------------- mutable borrow occurs here (via `r.r2_union.f2_leaf.l1_u8`)
// On Linux, we get an error like the below
// normalize-stderr-test "couldn't create a temp dir.*" -> "io error modifying /does-not-exist/"
-// ignore-tidy-linelength
// ignore-windows - this is a unix-specific test
// ignore-emscripten - the file-system issues do not replicate here
// ignore-wasm - the file-system issues do not replicate here
// build-fail
// dont-check-compiler-stderr
// error-pattern:cannot link together two panic runtimes: panic_runtime_unwind and panic_runtime_unwind2
-// ignore-tidy-linelength
// aux-build:panic-runtime-unwind.rs
// aux-build:panic-runtime-unwind2.rs
// aux-build:panic-runtime-lang-items.rs
//
// dont-check-compiler-stderr
// compile-flags: -C panic=unwind -C force-unwind-tables=no
-// ignore-tidy-linelength
//
// error-pattern: panic=unwind requires unwind tables, they cannot be disabled with `-C force-unwind-tables=no`.
//
// only-x86_64-windows-msvc
// compile-flags: -C force-unwind-tables=no
-// ignore-tidy-linelength
//
// error-pattern: target requires unwind tables, they cannot be disabled with `-C force-unwind-tables=no`.
-// ignore-tidy-linelength
-
fn main() {}
extern "C" {
error: expected one of `(`, `async`, `const`, `default`, `extern`, `fn`, `pub`, `unsafe`, or `use`, found keyword `pub`
- --> $DIR/duplicate-visibility.rs:6:9
+ --> $DIR/duplicate-visibility.rs:4:9
|
LL | extern "C" {
| - while parsing this item list starting here
-// ignore-tidy-linelength
-
// The problem in #66357 was that the call trace:
//
// - parse_fn_block_decl
error: expected one of `,` or `:`, found `(`
- --> $DIR/issue-66357-unexpected-unreachable.rs:14:13
+ --> $DIR/issue-66357-unexpected-unreachable.rs:12:13
|
LL | fn f() { |[](* }
| ^ expected one of `,` or `:`
error: expected one of `&`, `(`, `)`, `-`, `...`, `..=`, `..`, `[`, `_`, `box`, `mut`, `ref`, `|`, identifier, or path, found `*`
- --> $DIR/issue-66357-unexpected-unreachable.rs:14:14
+ --> $DIR/issue-66357-unexpected-unreachable.rs:12:14
|
LL | fn f() { |[](* }
| -^ help: `)` may belong here
-// ignore-tidy-linelength
-
fn main() {
println!(“hello world”);
//~^ ERROR unknown start of token: \u{201c}
error: unknown start of token: \u{201c}
- --> $DIR/unicode-quote-chars.rs:4:14
+ --> $DIR/unicode-quote-chars.rs:2:14
|
LL | println!(“hello world”);
| ^
| ^^^^^^^^^^^^^
error: unknown start of token: \u{201d}
- --> $DIR/unicode-quote-chars.rs:4:26
+ --> $DIR/unicode-quote-chars.rs:2:26
|
LL | println!(“hello world”);
| ^
| ^
error: expected `,`, found `world`
- --> $DIR/unicode-quote-chars.rs:4:21
+ --> $DIR/unicode-quote-chars.rs:2:21
|
LL | println!(“hello world”);
| ^^^^^ expected `,`
-// ignore-tidy-linelength
-
fn func((1, (Some(1), 2..=3)): (isize, (Option<isize>, isize))) { }
//~^ ERROR refutable pattern in function argument: `(_, _)` not covered
error[E0005]: refutable pattern in function argument: `(_, _)` not covered
- --> $DIR/refutable-pattern-errors.rs:3:9
+ --> $DIR/refutable-pattern-errors.rs:1:9
|
LL | fn func((1, (Some(1), 2..=3)): (isize, (Option<isize>, isize))) { }
| ^^^^^^^^^^^^^^^^^^^^^ pattern `(_, _)` not covered
= note: the matched value is of type `(isize, (Option<isize>, isize))`
error[E0005]: refutable pattern in local binding: `(i32::MIN..=0_i32, _)` and `(2_i32..=i32::MAX, _)` not covered
- --> $DIR/refutable-pattern-errors.rs:7:9
+ --> $DIR/refutable-pattern-errors.rs:5:9
|
LL | let (1, (Some(1), 2..=3)) = (1, (None, 2));
| ^^^^^^^^^^^^^^^^^^^^^ patterns `(i32::MIN..=0_i32, _)` and `(2_i32..=i32::MAX, _)` not covered
-// ignore-tidy-linelength
-
#![feature(decl_macro, associated_type_defaults)]
#![allow(unused, private_in_public)]
error: type `for<'r> fn(&'r priv_trait::Pub) {<priv_trait::Pub as PrivTr>::method}` is private
- --> $DIR/associated-item-privacy-trait.rs:17:21
+ --> $DIR/associated-item-privacy-trait.rs:15:21
|
LL | let value = <Pub as PrivTr>::method;
| ^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `for<'r> fn(&'r priv_trait::Pub) {<priv_trait::Pub as PrivTr>::method}` is private
- --> $DIR/associated-item-privacy-trait.rs:19:9
+ --> $DIR/associated-item-privacy-trait.rs:17:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `for<'r> fn(&'r Self) {<Self as PrivTr>::method}` is private
- --> $DIR/associated-item-privacy-trait.rs:21:13
+ --> $DIR/associated-item-privacy-trait.rs:19:13
|
LL | Pub.method();
| ^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: associated constant `<Pub as PrivTr>::CONST` is private
- --> $DIR/associated-item-privacy-trait.rs:23:9
+ --> $DIR/associated-item-privacy-trait.rs:21:9
|
LL | <Pub as PrivTr>::CONST;
| ^^^^^^^^^^^^^^^^^^^^^^ private associated constant
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: associated type `<Pub as PrivTr>::AssocTy` is private
- --> $DIR/associated-item-privacy-trait.rs:25:16
+ --> $DIR/associated-item-privacy-trait.rs:23:16
|
LL | let _: <Pub as PrivTr>::AssocTy;
| ^^^^^^^^^^^^^^^^^^^^^^^^ private associated type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: trait `PrivTr` is private
- --> $DIR/associated-item-privacy-trait.rs:27:34
+ --> $DIR/associated-item-privacy-trait.rs:25:34
|
LL | pub type InSignatureTy = <Pub as PrivTr>::AssocTy;
| ^^^^^^^^^^^^^^^^^^^^^^^^ private trait
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: trait `PrivTr` is private
- --> $DIR/associated-item-privacy-trait.rs:29:34
+ --> $DIR/associated-item-privacy-trait.rs:27:34
|
LL | pub trait InSignatureTr: PrivTr {}
| ^^^^^^ private trait
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: trait `PrivTr` is private
- --> $DIR/associated-item-privacy-trait.rs:31:14
+ --> $DIR/associated-item-privacy-trait.rs:29:14
|
LL | impl PrivTr for u8 {}
| ^^^^^^ private trait
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_signature::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:48:21
+ --> $DIR/associated-item-privacy-trait.rs:46:21
|
LL | let value = <Pub as PubTr>::method;
| ^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_signature::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:50:9
+ --> $DIR/associated-item-privacy-trait.rs:48:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_signature::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:52:13
+ --> $DIR/associated-item-privacy-trait.rs:50:13
|
LL | Pub.method(loop {});
| ^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:69:21
+ --> $DIR/associated-item-privacy-trait.rs:67:21
|
LL | let value = <Pub as PubTr>::method::<Priv>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:71:9
+ --> $DIR/associated-item-privacy-trait.rs:69:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:73:9
+ --> $DIR/associated-item-privacy-trait.rs:71:9
|
LL | Pub.method::<Priv>();
| ^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:93:21
+ --> $DIR/associated-item-privacy-trait.rs:91:21
|
LL | let value = <Pub as PubTr>::method;
| ^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:95:9
+ --> $DIR/associated-item-privacy-trait.rs:93:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:97:21
+ --> $DIR/associated-item-privacy-trait.rs:95:21
|
LL | let value = <Pub as PubTr<_>>::method;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:99:9
+ --> $DIR/associated-item-privacy-trait.rs:97:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:101:9
+ --> $DIR/associated-item-privacy-trait.rs:99:9
|
LL | Pub.method();
| ^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:104:21
+ --> $DIR/associated-item-privacy-trait.rs:102:21
|
LL | let value = <Priv as PubTr<_>>::method;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:106:9
+ --> $DIR/associated-item-privacy-trait.rs:104:9
|
LL | value;
| ^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:108:9
+ --> $DIR/associated-item-privacy-trait.rs:106:9
|
LL | Priv.method();
| ^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:111:9
+ --> $DIR/associated-item-privacy-trait.rs:109:9
|
LL | <Pub as PubTr>::CONST;
| ^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:113:9
+ --> $DIR/associated-item-privacy-trait.rs:111:9
|
LL | <Pub as PubTr<_>>::CONST;
| ^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:115:9
+ --> $DIR/associated-item-privacy-trait.rs:113:9
|
LL | <Priv as PubTr<_>>::CONST;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:119:30
+ --> $DIR/associated-item-privacy-trait.rs:117:30
|
LL | let _: <Pub as PubTr<_>>::AssocTy;
| ^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:121:17
+ --> $DIR/associated-item-privacy-trait.rs:119:17
|
LL | let _: <Priv as PubTr<_>>::AssocTy;
| ^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:124:35
+ --> $DIR/associated-item-privacy-trait.rs:122:35
|
LL | pub type InSignatureTy1 = <Pub as PubTr>::AssocTy;
| ^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:126:35
+ --> $DIR/associated-item-privacy-trait.rs:124:35
|
LL | pub type InSignatureTy2 = <Priv as PubTr<Pub>>::AssocTy;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ private type
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: type `priv_parent_substs::Priv` is private
- --> $DIR/associated-item-privacy-trait.rs:128:14
+ --> $DIR/associated-item-privacy-trait.rs:126:14
|
LL | impl PubTr for u8 {}
| ^^^^^ private type
-// ignore-tidy-linelength
// aux-build:make-macro.rs
// aux-build:meta-macro.rs
// edition:2018
Def site: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5)
-Input: TokenStream [Ident { ident: "$crate", span: $DIR/meta-macro-hygiene.rs:24:37: 24:43 (#4) }, Punct { ch: ':', spacing: Joint, span: $DIR/meta-macro-hygiene.rs:24:43: 24:45 (#4) }, Punct { ch: ':', spacing: Alone, span: $DIR/meta-macro-hygiene.rs:24:43: 24:45 (#4) }, Ident { ident: "dummy", span: $DIR/meta-macro-hygiene.rs:24:45: 24:50 (#4) }, Punct { ch: '!', spacing: Alone, span: $DIR/meta-macro-hygiene.rs:24:50: 24:51 (#4) }, Group { delimiter: Parenthesis, stream: TokenStream [], span: $DIR/meta-macro-hygiene.rs:24:51: 24:53 (#4) }]
+Input: TokenStream [Ident { ident: "$crate", span: $DIR/meta-macro-hygiene.rs:23:37: 23:43 (#4) }, Punct { ch: ':', spacing: Joint, span: $DIR/meta-macro-hygiene.rs:23:43: 23:45 (#4) }, Punct { ch: ':', spacing: Alone, span: $DIR/meta-macro-hygiene.rs:23:43: 23:45 (#4) }, Ident { ident: "dummy", span: $DIR/meta-macro-hygiene.rs:23:45: 23:50 (#4) }, Punct { ch: '!', spacing: Alone, span: $DIR/meta-macro-hygiene.rs:23:50: 23:51 (#4) }, Group { delimiter: Parenthesis, stream: TokenStream [], span: $DIR/meta-macro-hygiene.rs:23:51: 23:53 (#4) }]
Respanned: TokenStream [Ident { ident: "$crate", span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }, Punct { ch: ':', spacing: Joint, span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }, Punct { ch: ':', spacing: Alone, span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }, Ident { ident: "dummy", span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }, Punct { ch: '!', spacing: Alone, span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }, Group { delimiter: Parenthesis, stream: TokenStream [], span: $DIR/auxiliary/make-macro.rs:7:9: 7:56 (#5) }]
#![feature /* 0#0 */(prelude_import)]
-// ignore-tidy-linelength
// aux-build:make-macro.rs
// aux-build:meta-macro.rs
// edition:2018
--- /dev/null
+// build-fail
+ //~^ overflow evaluating
+
+fn main() {
+ let mut iter = 0u8..1;
+ func(&mut iter)
+}
+
+fn func<T: Iterator<Item = u8>>(iter: &mut T) {
+ func(&mut iter.map(|x| x + 1))
+}
--- /dev/null
+error[E0275]: overflow evaluating the requirement `Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>: Iterator`
+ |
+ = help: consider adding a `#![recursion_limit="256"]` attribute to your crate (`issue_83150`)
+ = note: required because of the requirements on the impl of `Iterator` for `&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>, [closure@$DIR/issue-83150.rs:10:24: 10:33]>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0275`.
-// ignore-tidy-linelength
-
// Various examples of structs whose fields are not well-formed.
#![allow(dead_code)]
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:19:18
+ --> $DIR/regions-enum-not-wf.rs:17:18
|
LL | enum Ref1<'a, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'a`
| ^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:24:25
+ --> $DIR/regions-enum-not-wf.rs:22:25
|
LL | enum Ref2<'a, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'a`
| ^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:37:23
+ --> $DIR/regions-enum-not-wf.rs:35:23
|
LL | enum RefDouble<'a, 'b, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'b`
-// ignore-tidy-linelength
-
// Various examples of structs whose fields are not well-formed.
#![allow(dead_code)]
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:19:18
+ --> $DIR/regions-enum-not-wf.rs:17:18
|
LL | enum Ref1<'a, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'a`
| ^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:24:25
+ --> $DIR/regions-enum-not-wf.rs:22:25
|
LL | enum Ref2<'a, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'a`
| ^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
error[E0309]: the parameter type `T` may not live long enough
- --> $DIR/regions-enum-not-wf.rs:37:23
+ --> $DIR/regions-enum-not-wf.rs:35:23
|
LL | enum RefDouble<'a, 'b, T> {
| - help: consider adding an explicit lifetime bound...: `T: 'b`
// build-fail
// ignore-emscripten
-// ignore-tidy-linelength
#![feature(repr_simd, platform_intrinsics)]
#![allow(non_camel_case_types)]
#[repr(simd)]
error[E0511]: invalid monomorphization of `simd_saturating_add` intrinsic: expected element type `f32` of vector type `f32x4` to be a signed or unsigned integer type
- --> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:34:9
+ --> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:33:9
|
LL | simd_saturating_add(z, z);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0511]: invalid monomorphization of `simd_saturating_sub` intrinsic: expected element type `f32` of vector type `f32x4` to be a signed or unsigned integer type
- --> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:36:9
+ --> $DIR/simd-intrinsic-generic-arithmetic-saturating.rs:35:9
|
LL | simd_saturating_sub(z, z);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
#![feature(repr_simd, platform_intrinsics)]
-// ignore-tidy-linelength
// error-pattern:monomorphising SIMD type `Simd2<X>` with a non-primitive-scalar (integer/float/pointer) element type `X`
#![feature(repr_simd)]
#![allow(non_camel_case_types)]
-// ignore-tidy-linelength
#[repr(simd)]
struct empty; //~ ERROR SIMD vector cannot be empty
error[E0075]: SIMD vector cannot be empty
- --> $DIR/simd-type.rs:7:1
+ --> $DIR/simd-type.rs:6:1
|
LL | struct empty;
| ^^^^^^^^^^^^^
error[E0075]: SIMD vector cannot be empty
- --> $DIR/simd-type.rs:10:1
+ --> $DIR/simd-type.rs:9:1
|
LL | struct empty2([f32; 0]);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error[E0076]: SIMD vector should be homogeneous
- --> $DIR/simd-type.rs:16:1
+ --> $DIR/simd-type.rs:15:1
|
LL | struct i64f64(i64, f64);
| ^^^^^^^^^^^^^^^^^^^^^^^^ SIMD elements must have the same type
error[E0077]: SIMD vector element type should be a primitive scalar (integer/float/pointer) type
- --> $DIR/simd-type.rs:21:1
+ --> $DIR/simd-type.rs:20:1
|
LL | struct FooV(Foo, Foo);
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0077]: SIMD vector element type should be a primitive scalar (integer/float/pointer) type
- --> $DIR/simd-type.rs:24:1
+ --> $DIR/simd-type.rs:23:1
|
LL | struct FooV2([Foo; 2]);
| ^^^^^^^^^^^^^^^^^^^^^^^
error[E0075]: SIMD vector cannot have more than 32768 elements
- --> $DIR/simd-type.rs:27:1
+ --> $DIR/simd-type.rs:26:1
|
LL | struct TooBig([f32; 65536]);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-// ignore-tidy-linelength
-
#![crate_type = "lib"]
#![feature(lang_items)]
#![no_std]
error[E0390]: only a single inherent implementation marked with `#[lang = "str"]` is allowed for the `str` primitive
- --> $DIR/single-primitive-inherent-impl.rs:11:1
+ --> $DIR/single-primitive-inherent-impl.rs:9:1
|
LL | / impl str {
LL | |
-// ignore-tidy-linelength
// aux-build:unstable_generic_param.rs
extern crate unstable_generic_param;
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability-where.rs:8:45
+ --> $DIR/generics-default-stability-where.rs:7:45
|
LL | impl<T> Trait3<usize> for T where T: Trait2<usize> {
| ^^^^^
-// ignore-tidy-linelength
// aux-build:unstable_generic_param.rs
#![feature(unstable_default6)]
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:17:13
+ --> $DIR/generics-default-stability.rs:16:13
|
LL | impl Trait1<usize> for S {
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:21:13
+ --> $DIR/generics-default-stability.rs:20:13
|
LL | impl Trait1<isize> for S {
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:25:13
+ --> $DIR/generics-default-stability.rs:24:13
|
LL | impl Trait2<usize> for S {
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:84:29
+ --> $DIR/generics-default-stability.rs:83:29
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^
= note: `#[warn(deprecated)]` on by default
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:84:12
+ --> $DIR/generics-default-stability.rs:83:12
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:89:12
+ --> $DIR/generics-default-stability.rs:88:12
|
LL | let _: Struct4 = STRUCT4;
| ^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:90:12
+ --> $DIR/generics-default-stability.rs:89:12
|
LL | let _: Struct4<usize> = STRUCT4;
| ^^^^^^^^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:91:29
+ --> $DIR/generics-default-stability.rs:90:29
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
- --> $DIR/generics-default-stability.rs:91:12
+ --> $DIR/generics-default-stability.rs:90:12
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:97:29
+ --> $DIR/generics-default-stability.rs:96:29
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:97:12
+ --> $DIR/generics-default-stability.rs:96:12
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:102:12
+ --> $DIR/generics-default-stability.rs:101:12
|
LL | let _: Struct5 = STRUCT5;
| ^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:103:12
+ --> $DIR/generics-default-stability.rs:102:12
|
LL | let _: Struct5<usize> = STRUCT5;
| ^^^^^^^^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:105:29
+ --> $DIR/generics-default-stability.rs:104:29
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
| ^^^^^^^
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
- --> $DIR/generics-default-stability.rs:105:12
+ --> $DIR/generics-default-stability.rs:104:12
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
| ^^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:160:28
+ --> $DIR/generics-default-stability.rs:159:28
|
LL | let _: Alias4<isize> = Alias4::Some(1);
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:160:12
+ --> $DIR/generics-default-stability.rs:159:12
|
LL | let _: Alias4<isize> = Alias4::Some(1);
| ^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:164:12
+ --> $DIR/generics-default-stability.rs:163:12
|
LL | let _: Alias4 = ALIAS4;
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:165:12
+ --> $DIR/generics-default-stability.rs:164:12
|
LL | let _: Alias4<usize> = ALIAS4;
| ^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:166:28
+ --> $DIR/generics-default-stability.rs:165:28
|
LL | let _: Alias4<isize> = Alias4::Some(0);
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias4`: test
- --> $DIR/generics-default-stability.rs:166:12
+ --> $DIR/generics-default-stability.rs:165:12
|
LL | let _: Alias4<isize> = Alias4::Some(0);
| ^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:171:28
+ --> $DIR/generics-default-stability.rs:170:28
|
LL | let _: Alias5<isize> = Alias5::Some(1);
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:171:12
+ --> $DIR/generics-default-stability.rs:170:12
|
LL | let _: Alias5<isize> = Alias5::Some(1);
| ^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:175:12
+ --> $DIR/generics-default-stability.rs:174:12
|
LL | let _: Alias5 = ALIAS5;
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:176:12
+ --> $DIR/generics-default-stability.rs:175:12
|
LL | let _: Alias5<usize> = ALIAS5;
| ^^^^^^^^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:178:28
+ --> $DIR/generics-default-stability.rs:177:28
|
LL | let _: Alias5<isize> = Alias5::Some(0);
| ^^^^^^
warning: use of deprecated type alias `unstable_generic_param::Alias5`: test
- --> $DIR/generics-default-stability.rs:178:12
+ --> $DIR/generics-default-stability.rs:177:12
|
LL | let _: Alias5<isize> = Alias5::Some(0);
| ^^^^^^^^^^^^^
warning: use of deprecated variant `unstable_generic_param::Enum4::Some`: test
- --> $DIR/generics-default-stability.rs:232:27
+ --> $DIR/generics-default-stability.rs:231:27
|
LL | let _: Enum4<isize> = Enum4::Some(1);
| ^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum4`: test
- --> $DIR/generics-default-stability.rs:232:12
+ --> $DIR/generics-default-stability.rs:231:12
|
LL | let _: Enum4<isize> = Enum4::Some(1);
| ^^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum4`: test
- --> $DIR/generics-default-stability.rs:236:12
+ --> $DIR/generics-default-stability.rs:235:12
|
LL | let _: Enum4 = ENUM4;
| ^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum4`: test
- --> $DIR/generics-default-stability.rs:237:12
+ --> $DIR/generics-default-stability.rs:236:12
|
LL | let _: Enum4<usize> = ENUM4;
| ^^^^^^^^^^^^
warning: use of deprecated variant `unstable_generic_param::Enum4::Some`: test
- --> $DIR/generics-default-stability.rs:238:27
+ --> $DIR/generics-default-stability.rs:237:27
|
LL | let _: Enum4<isize> = Enum4::Some(0);
| ^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum4`: test
- --> $DIR/generics-default-stability.rs:238:12
+ --> $DIR/generics-default-stability.rs:237:12
|
LL | let _: Enum4<isize> = Enum4::Some(0);
| ^^^^^^^^^^^^
warning: use of deprecated variant `unstable_generic_param::Enum5::Some`: test
- --> $DIR/generics-default-stability.rs:243:27
+ --> $DIR/generics-default-stability.rs:242:27
|
LL | let _: Enum5<isize> = Enum5::Some(1);
| ^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum5`: test
- --> $DIR/generics-default-stability.rs:243:12
+ --> $DIR/generics-default-stability.rs:242:12
|
LL | let _: Enum5<isize> = Enum5::Some(1);
| ^^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum5`: test
- --> $DIR/generics-default-stability.rs:247:12
+ --> $DIR/generics-default-stability.rs:246:12
|
LL | let _: Enum5 = ENUM5;
| ^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum5`: test
- --> $DIR/generics-default-stability.rs:248:12
+ --> $DIR/generics-default-stability.rs:247:12
|
LL | let _: Enum5<usize> = ENUM5;
| ^^^^^^^^^^^^
warning: use of deprecated variant `unstable_generic_param::Enum5::Some`: test
- --> $DIR/generics-default-stability.rs:250:27
+ --> $DIR/generics-default-stability.rs:249:27
|
LL | let _: Enum5<isize> = Enum5::Some(0);
| ^^^^^^^^^^^
warning: use of deprecated enum `unstable_generic_param::Enum5`: test
- --> $DIR/generics-default-stability.rs:250:12
+ --> $DIR/generics-default-stability.rs:249:12
|
LL | let _: Enum5<isize> = Enum5::Some(0);
| ^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:36:20
+ --> $DIR/generics-default-stability.rs:35:20
|
LL | let _: Struct1<isize> = Struct1 { field: 1 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:40:20
+ --> $DIR/generics-default-stability.rs:39:20
|
LL | let _: Struct1<usize> = STRUCT1;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:41:20
+ --> $DIR/generics-default-stability.rs:40:20
|
LL | let _: Struct1<isize> = Struct1 { field: 0 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:70:27
+ --> $DIR/generics-default-stability.rs:69:27
|
LL | let _: Struct3<isize, usize> = STRUCT3;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:72:27
+ --> $DIR/generics-default-stability.rs:71:27
|
LL | let _: Struct3<isize, isize> = Struct3 { field1: 0, field2: 0 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:73:27
+ --> $DIR/generics-default-stability.rs:72:27
|
LL | let _: Struct3<usize, usize> = Struct3 { field1: 0, field2: 0 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:97:20
+ --> $DIR/generics-default-stability.rs:96:20
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:103:20
+ --> $DIR/generics-default-stability.rs:102:20
|
LL | let _: Struct5<usize> = STRUCT5;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:105:20
+ --> $DIR/generics-default-stability.rs:104:20
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:113:19
+ --> $DIR/generics-default-stability.rs:112:19
|
LL | let _: Alias1<isize> = Alias1::Some(1);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:117:19
+ --> $DIR/generics-default-stability.rs:116:19
|
LL | let _: Alias1<usize> = ALIAS1;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:118:19
+ --> $DIR/generics-default-stability.rs:117:19
|
LL | let _: Alias1<isize> = Alias1::Some(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:146:26
+ --> $DIR/generics-default-stability.rs:145:26
|
LL | let _: Alias3<isize, usize> = ALIAS3;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:148:26
+ --> $DIR/generics-default-stability.rs:147:26
|
LL | let _: Alias3<isize, isize> = Alias3::Ok(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:149:26
+ --> $DIR/generics-default-stability.rs:148:26
|
LL | let _: Alias3<usize, usize> = Alias3::Ok(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:171:19
+ --> $DIR/generics-default-stability.rs:170:19
|
LL | let _: Alias5<isize> = Alias5::Some(1);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:176:19
+ --> $DIR/generics-default-stability.rs:175:19
|
LL | let _: Alias5<usize> = ALIAS5;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:178:19
+ --> $DIR/generics-default-stability.rs:177:19
|
LL | let _: Alias5<isize> = Alias5::Some(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:185:18
+ --> $DIR/generics-default-stability.rs:184:18
|
LL | let _: Enum1<isize> = Enum1::Some(1);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:189:18
+ --> $DIR/generics-default-stability.rs:188:18
|
LL | let _: Enum1<usize> = ENUM1;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:190:18
+ --> $DIR/generics-default-stability.rs:189:18
|
LL | let _: Enum1<isize> = Enum1::Some(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:218:25
+ --> $DIR/generics-default-stability.rs:217:25
|
LL | let _: Enum3<isize, usize> = ENUM3;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:220:25
+ --> $DIR/generics-default-stability.rs:219:25
|
LL | let _: Enum3<isize, isize> = Enum3::Ok(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:221:25
+ --> $DIR/generics-default-stability.rs:220:25
|
LL | let _: Enum3<usize, usize> = Enum3::Ok(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:243:18
+ --> $DIR/generics-default-stability.rs:242:18
|
LL | let _: Enum5<isize> = Enum5::Some(1);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:248:18
+ --> $DIR/generics-default-stability.rs:247:18
|
LL | let _: Enum5<usize> = ENUM5;
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'unstable_default'
- --> $DIR/generics-default-stability.rs:250:18
+ --> $DIR/generics-default-stability.rs:249:18
|
LL | let _: Enum5<isize> = Enum5::Some(0);
| ^^^^^
= help: add `#![feature(unstable_default)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'box_alloc_param'
- --> $DIR/generics-default-stability.rs:257:24
+ --> $DIR/generics-default-stability.rs:256:24
|
LL | let _: Box1<isize, System> = Box1::new(1);
| ^^^^^^
= help: add `#![feature(box_alloc_param)]` to the crate attributes to enable
warning: use of deprecated field `unstable_generic_param::Struct4::field`: test
- --> $DIR/generics-default-stability.rs:84:39
+ --> $DIR/generics-default-stability.rs:83:39
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^^
warning: use of deprecated field `unstable_generic_param::Struct4::field`: test
- --> $DIR/generics-default-stability.rs:91:39
+ --> $DIR/generics-default-stability.rs:90:39
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^^
warning: use of deprecated field `unstable_generic_param::Struct5::field`: test
- --> $DIR/generics-default-stability.rs:97:39
+ --> $DIR/generics-default-stability.rs:96:39
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^^
warning: use of deprecated field `unstable_generic_param::Struct5::field`: test
- --> $DIR/generics-default-stability.rs:105:39
+ --> $DIR/generics-default-stability.rs:104:39
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
| ^^^^^^^^
-// ignore-tidy-linelength
-
struct Point<T> {
x: T,
y: T,
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:19:12
+ --> $DIR/structure-constructor-type-mismatch.rs:17:12
|
LL | x: 1,
| ^
| help: use a float literal: `1.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:22:12
+ --> $DIR/structure-constructor-type-mismatch.rs:20:12
|
LL | y: 2,
| ^
| help: use a float literal: `2.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:28:12
+ --> $DIR/structure-constructor-type-mismatch.rs:26:12
|
LL | x: 3,
| ^
| help: use a float literal: `3.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:31:12
+ --> $DIR/structure-constructor-type-mismatch.rs:29:12
|
LL | y: 4,
| ^
| help: use a float literal: `4.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:37:12
+ --> $DIR/structure-constructor-type-mismatch.rs:35:12
|
LL | x: 5,
| ^
| help: use a float literal: `5.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:44:12
+ --> $DIR/structure-constructor-type-mismatch.rs:42:12
|
LL | x: 7,
| ^
| help: use a float literal: `7.0`
error[E0107]: this type alias takes 0 type arguments but 1 type argument was supplied
- --> $DIR/structure-constructor-type-mismatch.rs:50:15
+ --> $DIR/structure-constructor-type-mismatch.rs:48:15
|
LL | let pt3 = PointF::<i32> {
| ^^^^^^------- help: remove these generics
| expected 0 type arguments
|
note: type alias defined here, with 0 type parameters
- --> $DIR/structure-constructor-type-mismatch.rs:8:6
+ --> $DIR/structure-constructor-type-mismatch.rs:6:6
|
LL | type PointF = Point<f32>;
| ^^^^^^
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:51:12
+ --> $DIR/structure-constructor-type-mismatch.rs:49:12
|
LL | x: 9,
| ^
| help: use a float literal: `9.0`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:52:12
+ --> $DIR/structure-constructor-type-mismatch.rs:50:12
|
LL | y: 10,
| ^^
| help: use a float literal: `10.0`
error[E0107]: this type alias takes 0 type arguments but 1 type argument was supplied
- --> $DIR/structure-constructor-type-mismatch.rs:56:9
+ --> $DIR/structure-constructor-type-mismatch.rs:54:9
|
LL | PointF::<u32> { .. } => {}
| ^^^^^^------- help: remove these generics
| expected 0 type arguments
|
note: type alias defined here, with 0 type parameters
- --> $DIR/structure-constructor-type-mismatch.rs:8:6
+ --> $DIR/structure-constructor-type-mismatch.rs:6:6
|
LL | type PointF = Point<f32>;
| ^^^^^^
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:56:9
+ --> $DIR/structure-constructor-type-mismatch.rs:54:9
|
LL | match (Point { x: 1, y: 2 }) {
| ---------------------- this expression has type `Point<{integer}>`
found struct `Point<f32>`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:61:9
+ --> $DIR/structure-constructor-type-mismatch.rs:59:9
|
LL | match (Point { x: 1, y: 2 }) {
| ---------------------- this expression has type `Point<{integer}>`
found struct `Point<f32>`
error[E0308]: mismatched types
- --> $DIR/structure-constructor-type-mismatch.rs:69:9
+ --> $DIR/structure-constructor-type-mismatch.rs:67:9
|
LL | match (Pair { x: 1, y: 2 }) {
| --------------------- this expression has type `Pair<{integer}, {integer}>`
error: symbol-name(_ZN5impl13foo3Foo3bar17<SYMBOL_HASH>)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(impl1::foo::Foo::bar::<SYMBOL_HASH>)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(impl1::foo::Foo::bar)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(foo::Foo::bar)
- --> $DIR/impl1.rs:22:9
+ --> $DIR/impl1.rs:21:9
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN5impl13bar33_$LT$impl$u20$impl1..foo..Foo$GT$3baz17<SYMBOL_HASH>)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(impl1::bar::<impl impl1::foo::Foo>::baz::<SYMBOL_HASH>)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(impl1::bar::<impl impl1::foo::Foo>::baz)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(bar::<impl foo::Foo>::baz)
- --> $DIR/impl1.rs:40:9
+ --> $DIR/impl1.rs:39:9
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN209_$LT$$u5b$$RF$dyn$u20$impl1..Foo$u2b$Assoc$u20$$u3d$$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RF$u8$C$$u20$...$RP$$u2b$impl1..AutoTrait$u3b$$u20$3$u5d$$u20$as$u20$impl1..main..$u7b$$u7b$closure$u7d$$u7d$..Bar$GT$6method17<SYMBOL_HASH>)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method::<SYMBOL_HASH>)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(<[&dyn Foo<Assoc = for<'r> extern "C" fn(&'r u8, ...)> + AutoTrait; 3] as main::{closure#1}::Bar>::method)
- --> $DIR/impl1.rs:70:13
+ --> $DIR/impl1.rs:69:13
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
// build-fail
-// ignore-tidy-linelength
// revisions: legacy v0
//[legacy]compile-flags: -Z symbol-mangling-version=legacy
//[v0]compile-flags: -Z symbol-mangling-version=v0
+++ /dev/null
-error: symbol-name(_ZN5impl13foo3Foo3bar17he53b9bee7600ed8dE)
- --> $DIR/impl1.rs:8:9
- |
-LL | #[rustc_symbol_name]
- | ^^^^^^^^^^^^^^^^^^^^
-
-error: def-path(foo::Foo::bar)
- --> $DIR/impl1.rs:9:9
- |
-LL | #[rustc_def_path]
- | ^^^^^^^^^^^^^^^^^
-
-error: symbol-name(_ZN5impl13bar33_$LT$impl$u20$impl1..foo..Foo$GT$3baz17h86c41f0462d901d4E)
- --> $DIR/impl1.rs:18:9
- |
-LL | #[rustc_symbol_name]
- | ^^^^^^^^^^^^^^^^^^^^
-
-error: def-path(bar::<impl foo::Foo>::baz)
- --> $DIR/impl1.rs:19:9
- |
-LL | #[rustc_def_path]
- | ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 4 previous errors
-
error: symbol-name(_RNvMNtCs21hi0yVfW1J_5impl13fooNtB2_3Foo3bar)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<impl1[17891616a171812d]::foo::Foo>::bar)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<impl1::foo::Foo>::bar)
- --> $DIR/impl1.rs:15:9
+ --> $DIR/impl1.rs:14:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(foo::Foo::bar)
- --> $DIR/impl1.rs:22:9
+ --> $DIR/impl1.rs:21:9
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
error: symbol-name(_RNvMNtCs21hi0yVfW1J_5impl13barNtNtB4_3foo3Foo3baz)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<impl1[17891616a171812d]::foo::Foo>::baz)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<impl1::foo::Foo>::baz)
- --> $DIR/impl1.rs:33:9
+ --> $DIR/impl1.rs:32:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(bar::<impl foo::Foo>::baz)
- --> $DIR/impl1.rs:40:9
+ --> $DIR/impl1.rs:39:9
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
error: symbol-name(_RNvXNCNvCs21hi0yVfW1J_5impl14mains_0ARDNtB6_3Foop5AssocFG_KCRL0_hvEuNtB6_9AutoTraitEL_j3_NtB2_3Bar6method)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<[&dyn impl1[17891616a171812d]::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1[17891616a171812d]::AutoTrait; 3: usize] as impl1[17891616a171812d]::main::{closure#1}::Bar>::method)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<[&dyn impl1::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1::AutoTrait; 3] as impl1::main::{closure#1}::Bar>::method)
- --> $DIR/impl1.rs:63:13
+ --> $DIR/impl1.rs:62:13
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: def-path(<[&dyn Foo<Assoc = for<'r> extern "C" fn(&'r u8, ...)> + AutoTrait; 3] as main::{closure#1}::Bar>::method)
- --> $DIR/impl1.rs:70:13
+ --> $DIR/impl1.rs:69:13
|
LL | #[rustc_def_path]
| ^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17h6244e5288326926aE)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(issue_60925::foo::Foo<issue_60925::llvm::Foo>::foo::h6244e5288326926a)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(issue_60925::foo::Foo<issue_60925::llvm::Foo>::foo)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
// build-fail
-// ignore-tidy-linelength
// revisions: legacy v0
//[legacy]compile-flags: -Z symbol-mangling-version=legacy
//[v0]compile-flags: -Z symbol-mangling-version=v0
+++ /dev/null
-error: symbol-name(_ZN11issue_609253foo36Foo$LT$issue_60925..llv$6d$..Foo$GT$3foo17h059a991a004536adE)
- --> $DIR/issue-60925.rs:16:9
- |
-LL | #[rustc_symbol_name]
- | ^^^^^^^^^^^^^^^^^^^^
-
-error: demangling(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo::h059a991a004536ad)
- --> $DIR/issue-60925.rs:16:9
- |
-LL | #[rustc_symbol_name]
- | ^^^^^^^^^^^^^^^^^^^^
-
-error: demangling-alt(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo)
- --> $DIR/issue-60925.rs:16:9
- |
-LL | #[rustc_symbol_name]
- | ^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 3 previous errors
-
error: symbol-name(_RNvMNtCs21hi0yVfW1J_11issue_609253fooINtB2_3FooNtNtB4_4llvm3FooE3foo)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<issue_60925[17891616a171812d]::foo::Foo<issue_60925[17891616a171812d]::llvm::Foo>>::foo)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<issue_60925::foo::Foo<issue_60925::llvm::Foo>>::foo)
- --> $DIR/issue-60925.rs:22:9
+ --> $DIR/issue-60925.rs:21:9
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: symbol-name(_ZN72_$LT$issue_75326..Foo$LT$I$C$E$GT$$u20$as$u20$issue_75326..Iterator2$GT$4next17SYMBOL_HASH)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<issue_75326::Foo<I,E> as issue_75326::Iterator2>::next::SYMBOL_HASH)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<issue_75326::Foo<I,E> as issue_75326::Iterator2>::next)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
// build-fail
-// ignore-tidy-linelength
// revisions: legacy v0
//[legacy]compile-flags: -Z symbol-mangling-version=legacy
//[v0]compile-flags: -Z symbol-mangling-version=v0
error: symbol-name(_RNvXINICs21hi0yVfW1J_11issue_75326s_0pppEINtB5_3FooppENtB5_9Iterator24nextB5_)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling(<issue_75326[17891616a171812d]::Foo<_, _> as issue_75326[17891616a171812d]::Iterator2>::next)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
error: demangling-alt(<issue_75326::Foo<_, _> as issue_75326::Iterator2>::next)
- --> $DIR/issue-75326.rs:42:5
+ --> $DIR/issue-75326.rs:41:5
|
LL | #[rustc_symbol_name]
| ^^^^^^^^^^^^^^^^^^^^
-// ignore-tidy-linelength
-
// Check that creating/matching on an enum variant through an alias with
// the wrong braced/unit form is caught as an error.
error[E0533]: expected unit struct, unit variant or constant, found struct variant `Alias::Braced`
- --> $DIR/incorrect-variant-form-through-alias-caught.rs:10:5
+ --> $DIR/incorrect-variant-form-through-alias-caught.rs:8:5
|
LL | Alias::Braced;
| ^^^^^^^^^^^^^
error[E0533]: expected unit struct, unit variant or constant, found struct variant `Alias::Braced`
- --> $DIR/incorrect-variant-form-through-alias-caught.rs:12:9
+ --> $DIR/incorrect-variant-form-through-alias-caught.rs:10:9
|
LL | let Alias::Braced = panic!();
| ^^^^^^^^^^^^^
error[E0164]: expected tuple struct or tuple variant, found struct variant `Alias::Braced`
- --> $DIR/incorrect-variant-form-through-alias-caught.rs:14:9
+ --> $DIR/incorrect-variant-form-through-alias-caught.rs:12:9
|
LL | let Alias::Braced(..) = panic!();
| ^^^^^^^^^^^^^^^^^ not a tuple variant or struct
error[E0618]: expected function, found enum variant `Alias::Unit`
- --> $DIR/incorrect-variant-form-through-alias-caught.rs:17:5
+ --> $DIR/incorrect-variant-form-through-alias-caught.rs:15:5
|
LL | enum Enum { Braced {}, Unit, Tuple() }
| ---- `Alias::Unit` defined here
| ^^^^^^^^^^^
error[E0164]: expected tuple struct or tuple variant, found unit variant `Alias::Unit`
- --> $DIR/incorrect-variant-form-through-alias-caught.rs:19:9
+ --> $DIR/incorrect-variant-form-through-alias-caught.rs:17:9
|
LL | let Alias::Unit() = panic!();
| ^^^^^^^^^^^^^ not a tuple variant or struct
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/issue-53598.rs:5:32
+ --> $DIR/issue-53598.rs:4:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-53598.rs:24:42
+ --> $DIR/issue-53598.rs:23:42
|
LL | fn foo<T: Debug>(_: T) -> Self::Item {
| __________________________________________^
error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-53598.rs:24:42
+ --> $DIR/issue-53598.rs:23:42
|
LL | fn foo<T: Debug>(_: T) -> Self::Item {
| __________________________________________^
-// ignore-tidy-linelength
// ignore-compare-mode-chalk
// revisions: min_tait full_tait
#![feature(min_type_alias_impl_trait)]
warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/issue-57700.rs:6:32
+ --> $DIR/issue-57700.rs:5:32
|
LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
| ^^^^^^^^^^^^^^^^^^^^^
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
error: type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-57700.rs:20:58
+ --> $DIR/issue-57700.rs:19:58
|
LL | fn foo(self: impl Deref<Target = Self>) -> Self::Bar {
| __________________________________________________________^
error: type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
- --> $DIR/issue-57700.rs:20:58
+ --> $DIR/issue-57700.rs:19:58
|
LL | fn foo(self: impl Deref<Target = Self>) -> Self::Bar {
| __________________________________________________________^
-// ignore-tidy-linelength
// ignore-compare-mode-chalk
#![feature(arbitrary_self_types)]
// revisions: min_tait full_tait
-// ignore-tidy-linelength
//! Test the part of RFC 2514 that is about not applying `DerefMut` coercions
//! of union fields.
#![feature(untagged_unions)]
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:15:14
+ --> $DIR/union-deref.rs:14:14
|
LL | unsafe { u.f.0 = Vec::new() };
| ^^^
= help: add an explicit `*` if that is desired, or call `ptr::write` to not run the destructor
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:17:19
+ --> $DIR/union-deref.rs:16:19
|
LL | unsafe { &mut u.f.0 };
| ^^^
= help: add an explicit `*` if that is desired, or call `ptr::write` to not run the destructor
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:19:14
+ --> $DIR/union-deref.rs:18:14
|
LL | unsafe { u.f.0.push(0) };
| ^^^
= help: add an explicit `*` if that is desired, or call `ptr::write` to not run the destructor
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:23:14
+ --> $DIR/union-deref.rs:22:14
|
LL | unsafe { u.f.0.0 = Vec::new() };
| ^^^^^
= help: add an explicit `*` if that is desired, or call `ptr::write` to not run the destructor
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:25:19
+ --> $DIR/union-deref.rs:24:19
|
LL | unsafe { &mut u.f.0.0 };
| ^^^^^
= help: add an explicit `*` if that is desired, or call `ptr::write` to not run the destructor
error: not automatically applying `DerefMut` on `ManuallyDrop` union field
- --> $DIR/union-deref.rs:27:14
+ --> $DIR/union-deref.rs:26:14
|
LL | unsafe { u.f.0.0.push(0) };
| ^^^^^
-// ignore-tidy-linelength
-
// regression test for #26376
trait Foo {
error[E0161]: cannot move a value of type [u8]: the size of [u8] cannot be statically determined
- --> $DIR/return-unsized-from-trait-method.rs:11:17
+ --> $DIR/return-unsized-from-trait-method.rs:9:17
|
LL | let _ = f.foo();
| ^^^^^^^
+// compile-flags: -Clink-arg=-nostartfiles
// ignore-macos
// ignore-windows
-#![feature(lang_items, link_args, start, libc)]
-#![link_args = "-nostartfiles"]
+#![feature(lang_items, start, libc)]
#![no_std]
use core::panic::PanicInfo;
+// compile-flags: -Clink-arg=-nostartfiles
// ignore-macos
// ignore-windows
#![warn(clippy::empty_loop)]
-#![feature(lang_items, link_args, start, libc)]
-#![link_args = "-nostartfiles"]
+#![feature(lang_items, start, libc)]
#![no_std]
use core::panic::PanicInfo;
} else {
Command::new(&self.config.rustdoc_path.clone().expect("no rustdoc built yet"))
};
- // FIXME Why is -L here?
- rustc.arg(input_file); //.arg("-L").arg(&self.config.build_base);
+ rustc.arg(input_file);
// Use a single thread for efficiency and a deterministic error message order
rustc.arg("-Zthreads=1");
//! A few exceptions are allowed as there's known bugs in rustdoc, but this
//! should catch the majority of "broken link" cases.
-#![cfg_attr(bootstrap, feature(str_split_once))]
-
use std::collections::hash_map::Entry;
use std::collections::{HashMap, HashSet};
use std::env;
// execQuery last parameter is built in buildIndex.
// buildIndex requires the hashmap from search-index.
var functionsToLoad = ["buildHrefAndPath", "pathSplitter", "levenshtein", "validateResult",
- "handleAliases", "getQuery", "buildIndex", "execQuery", "execSearch"];
+ "handleAliases", "getQuery", "buildIndex", "execQuery", "execSearch",
+ "removeEmptyStringsFromArray"];
ALIASES = {};
finalJS += 'window = { "currentCrate": "' + crate + '", rootPath: "../" };\n';
//! This library contains the tidy lints and exposes it
//! to be used by tools.
-#![cfg_attr(bootstrap, feature(str_split_once))]
-
use std::fs::File;
use std::io::Read;
use walkdir::{DirEntry, WalkDir};
fn filter_dirs(path: &Path) -> bool {
let skip = [
+ "tidy-test-file",
"compiler/rustc_codegen_cranelift",
"src/llvm-project",
"library/backtrace",
"library/panic_abort",
"library/panic_unwind",
"library/unwind",
- // black_box implementation is LLVM-version specific and it uses
- // target_os to tell targets with different LLVM-versions apart
- // (e.g. `wasm32-unknown-emscripten` vs `wasm32-unknown-unknown`):
- "library/core/src/hint.rs",
"library/std/src/sys/", // Platform-specific code for std lives here.
// This has the trailing slash so that sys_common is not excepted.
"library/std/src/os", // Platform-specific public interfaces
"library/rtstartup", // Not sure what to do about this. magic stuff for mingw
- // temporary exceptions
- "library/std/src/lib.rs",
- "library/std/src/path.rs",
- "library/std/src/f32.rs",
- "library/std/src/f64.rs",
// Integration test for platform-specific run-time feature detection:
"library/std/tests/run-time-detect.rs",
"library/std/src/net/test.rs",
"library/std/src/net/addr",
"library/std/src/net/udp",
- "library/std/src/sys_common/mod.rs",
- "library/std/src/sys_common/net.rs",
- "library/std/src/sys_common/backtrace.rs",
"library/std/src/sys_common/remutex.rs",
"library/std/src/sync/mutex.rs",
"library/std/src/sync/rwlock.rs",
- // panic_unwind shims
- "library/std/src/panicking.rs",
"library/term", // Not sure how to make this crate portable, but test crate needs it.
"library/test", // Probably should defer to unstable `std::sys` APIs.
- "library/std/src/sync/mpsc", // some tests are only run on non-emscripten
// std testing crates, okay for now at least
"library/core/tests",
"library/alloc/tests/lib.rs",
// we must use `#[cfg(windows)]` to conditionally compile the
// correct `VaList` structure for windows.
"library/core/src/ffi.rs",
- // non-std crates
- "src/test",
- "src/tools",
- "src/librustc",
- "src/librustdoc",
- "src/librustc_ast",
- "src/bootstrap",
];
pub fn check(path: &Path, bad: &mut bool) {