diff --git a/.travis.yml b/.travis.yml index 0646f4d4687a6..ec8060b9f56aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -94,6 +94,7 @@ matrix: MACOSX_DEPLOYMENT_TARGET=10.7 NO_LLVM_ASSERTIONS=1 NO_DEBUG_ASSERTIONS=1 + DIST_REQUIRE_ALL_TOOLS=1 CI_JOB_NAME=dist-i686-apple os: osx osx_image: xcode9.3-moar @@ -108,6 +109,7 @@ matrix: MACOSX_DEPLOYMENT_TARGET=10.7 NO_LLVM_ASSERTIONS=1 NO_DEBUG_ASSERTIONS=1 + DIST_REQUIRE_ALL_TOOLS=1 CI_JOB_NAME=dist-x86_64-apple os: osx osx_image: xcode9.3-moar diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e51a786f4682..49961d02ddab7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -566,7 +566,7 @@ labels to triage issues: to fix the issue. * The dark blue **final-comment-period** label marks bugs that are using the - RFC signoff functionality of [rfcbot][rfcbot] and are currenty in the final + RFC signoff functionality of [rfcbot][rfcbot] and are currently in the final comment period. * Red, **I**-prefixed labels indicate the **importance** of the issue. The diff --git a/appveyor.yml b/appveyor.yml index b1e2e1545cf85..04951454c29e1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -85,6 +85,7 @@ environment: --enable-full-tools --enable-profiler SCRIPT: python x.py dist + DIST_REQUIRE_ALL_TOOLS: 1 DEPLOY: 1 CI_JOB_NAME: dist-x86_64-msvc - RUST_CONFIGURE_ARGS: > @@ -93,6 +94,7 @@ environment: --enable-full-tools --enable-profiler SCRIPT: python x.py dist + DIST_REQUIRE_ALL_TOOLS: 1 DEPLOY: 1 CI_JOB_NAME: dist-i686-msvc - MSYS_BITS: 32 @@ -101,6 +103,7 @@ environment: MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z MINGW_DIR: mingw32 + DIST_REQUIRE_ALL_TOOLS: 1 DEPLOY: 1 CI_JOB_NAME: dist-i686-mingw - MSYS_BITS: 64 @@ -109,6 +112,7 @@ environment: MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z MINGW_DIR: mingw64 + DIST_REQUIRE_ALL_TOOLS: 1 DEPLOY: 1 CI_JOB_NAME: dist-x86_64-mingw diff --git a/config.toml.example b/config.toml.example index 66eaab236f7c0..312270532affc 100644 --- a/config.toml.example +++ b/config.toml.example @@ -481,3 +481,7 @@ # as the one built on Windows will contain backslashes in paths causing problems # on linux #src-tarball = true +# + +# Whether to allow failures when building tools +#missing-tools = false diff --git a/src/Cargo.lock b/src/Cargo.lock index 926016e5f0262..67c9ed450aaf1 100644 --- a/src/Cargo.lock +++ b/src/Cargo.lock @@ -1901,6 +1901,7 @@ dependencies = [ "chalk-engine 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "fmt_macros 0.0.0", + "getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", "graphviz 0.0.0", "jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2074,6 +2075,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "rustc-workspace-hack" version = "1.0.0" dependencies = [ + "serde_json 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2186,6 +2188,7 @@ version = "0.0.0" dependencies = [ "arena 0.0.0", "env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", "graphviz 0.0.0", "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc 0.0.0", diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 3a4bc526d03bf..c3fbc8eeca6ba 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -134,6 +134,7 @@ pub struct Config { pub test_miri: bool, pub save_toolstates: Option, pub print_step_timings: bool, + pub missing_tools: bool, // Fallback musl-root for all targets pub musl_root: Option, @@ -271,6 +272,7 @@ struct Dist { gpg_password_file: Option, upload_addr: Option, src_tarball: Option, + missing_tools: Option, } #[derive(Deserialize)] @@ -375,6 +377,7 @@ impl Config { config.rust_codegen_backends = vec![INTERNER.intern_str("llvm")]; config.rust_codegen_backends_dir = "codegen-backends".to_owned(); config.deny_warnings = true; + config.missing_tools = false; // set by bootstrap.py config.build = INTERNER.intern_str(&env::var("BUILD").expect("'BUILD' to be set")); @@ -613,6 +616,7 @@ impl Config { config.dist_gpg_password_file = t.gpg_password_file.clone().map(PathBuf::from); config.dist_upload_addr = t.upload_addr.clone(); set(&mut config.rust_dist_src, t.src_tarball); + set(&mut config.missing_tools, t.missing_tools); } // Now that we've reached the end of our configuration, infer the diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py index 75831dbe262ae..d95603190d869 100755 --- a/src/bootstrap/configure.py +++ b/src/bootstrap/configure.py @@ -69,6 +69,7 @@ def v(*args): o("emscripten", None, "compile the emscripten backend as well as LLVM") o("full-tools", None, "enable all tools") o("lldb", "rust.lldb", "build lldb") +o("missing-tools", "dist.missing-tools", "allow failures when building tools") # Optimization and debugging options. These may be overridden by the release # channel, etc. diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs index 2d94704fda7d6..c25f94357f24c 100644 --- a/src/bootstrap/dist.rs +++ b/src/bootstrap/dist.rs @@ -67,6 +67,14 @@ fn rust_installer(builder: &Builder) -> Command { builder.tool_cmd(Tool::RustInstaller) } +fn missing_tool(tool_name: &str, skip: bool) { + if skip { + println!("Unable to build {}, skipping dist", tool_name) + } else { + panic!("Unable to build {}", tool_name) + } +} + #[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] pub struct Docs { pub stage: u32, @@ -1166,7 +1174,7 @@ impl Step for Rls { let rls = builder.ensure(tool::Rls { compiler: builder.compiler(stage, builder.config.build), target, extra_features: Vec::new() - }).or_else(|| { println!("Unable to build RLS, skipping dist"); None })?; + }).or_else(|| { missing_tool("RLS", builder.build.config.missing_tools); None })?; builder.install(&rls, &image.join("bin"), 0o755); let doc = image.join("share/doc/rls"); @@ -1245,11 +1253,11 @@ impl Step for Clippy { let clippy = builder.ensure(tool::Clippy { compiler: builder.compiler(stage, builder.config.build), target, extra_features: Vec::new() - }).or_else(|| { println!("Unable to build clippy, skipping dist"); None })?; + }).or_else(|| { missing_tool("clippy", builder.build.config.missing_tools); None })?; let cargoclippy = builder.ensure(tool::CargoClippy { compiler: builder.compiler(stage, builder.config.build), target, extra_features: Vec::new() - }).or_else(|| { println!("Unable to build cargo clippy, skipping dist"); None })?; + }).or_else(|| { missing_tool("cargo clippy", builder.build.config.missing_tools); None })?; builder.install(&clippy, &image.join("bin"), 0o755); builder.install(&cargoclippy, &image.join("bin"), 0o755); @@ -1324,11 +1332,11 @@ impl Step for Rustfmt { let rustfmt = builder.ensure(tool::Rustfmt { compiler: builder.compiler(stage, builder.config.build), target, extra_features: Vec::new() - }).or_else(|| { println!("Unable to build Rustfmt, skipping dist"); None })?; + }).or_else(|| { missing_tool("Rustfmt", builder.build.config.missing_tools); None })?; let cargofmt = builder.ensure(tool::Cargofmt { compiler: builder.compiler(stage, builder.config.build), target, extra_features: Vec::new() - }).or_else(|| { println!("Unable to build Cargofmt, skipping dist"); None })?; + }).or_else(|| { missing_tool("Cargofmt", builder.build.config.missing_tools); None })?; builder.install(&rustfmt, &image.join("bin"), 0o755); builder.install(&cargofmt, &image.join("bin"), 0o755); diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 75c18cd2dd41c..247727762d16e 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -278,10 +278,6 @@ pub struct Build { initial_rustc: PathBuf, initial_cargo: PathBuf, - // Probed tools at runtime - lldb_version: Option, - lldb_python_dir: Option, - // Runtime state filled in later on // C/C++ compilers and archiver for all targets cc: HashMap, cc::Tool>, @@ -416,8 +412,6 @@ impl Build { ar: HashMap::new(), ranlib: HashMap::new(), crates: HashMap::new(), - lldb_version: None, - lldb_python_dir: None, is_sudo, ci_env: CiEnv::current(), delayed_failures: RefCell::new(Vec::new()), diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs index c2610de23beba..724cb5841f48f 100644 --- a/src/bootstrap/sanity.rs +++ b/src/bootstrap/sanity.rs @@ -236,19 +236,6 @@ $ pacman -R cmake && pacman -S mingw-w64-x86_64-cmake } } - let run = |cmd: &mut Command| { - cmd.output().map(|output| { - String::from_utf8_lossy(&output.stdout) - .lines().next().unwrap_or_else(|| { - panic!("{:?} failed {:?}", cmd, output) - }).to_string() - }) - }; - build.lldb_version = run(Command::new("lldb").arg("--version")).ok(); - if build.lldb_version.is_some() { - build.lldb_python_dir = run(Command::new("lldb").arg("-P")).ok(); - } - if let Some(ref s) = build.config.ccache { cmd_finder.must_have(s); } diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 0c4816dc90458..633c15b54b9ef 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -1082,11 +1082,34 @@ impl Step for Compiletest { if let Some(ref gdb) = builder.config.gdb { cmd.arg("--gdb").arg(gdb); } - if let Some(ref vers) = builder.lldb_version { + + let run = |cmd: &mut Command| { + cmd.output().map(|output| { + String::from_utf8_lossy(&output.stdout) + .lines().next().unwrap_or_else(|| { + panic!("{:?} failed {:?}", cmd, output) + }).to_string() + }) + }; + let lldb_exe = if builder.config.lldb_enabled && !target.contains("emscripten") { + // Test against the lldb that was just built. + builder.llvm_out(target) + .join("bin") + .join("lldb") + } else { + PathBuf::from("lldb") + }; + let lldb_version = Command::new(&lldb_exe) + .arg("--version") + .output() + .map(|output| { String::from_utf8_lossy(&output.stdout).to_string() }) + .ok(); + if let Some(ref vers) = lldb_version { cmd.arg("--lldb-version").arg(vers); - } - if let Some(ref dir) = builder.lldb_python_dir { - cmd.arg("--lldb-python-dir").arg(dir); + let lldb_python_dir = run(Command::new(&lldb_exe).arg("-P")).ok(); + if let Some(ref dir) = lldb_python_dir { + cmd.arg("--lldb-python-dir").arg(dir); + } } // Get paths from cmd args diff --git a/src/ci/docker/dist-i686-linux/Dockerfile b/src/ci/docker/dist-i686-linux/Dockerfile index d591fb28f36ed..8a84e47468744 100644 --- a/src/ci/docker/dist-i686-linux/Dockerfile +++ b/src/ci/docker/dist-i686-linux/Dockerfile @@ -110,3 +110,5 @@ ENV CFLAGS -mstackrealign # When we build cargo in this container, we don't want it to use the system # libcurl, instead it should compile its own. ENV LIBCURL_NO_PKG_CONFIG 1 + +ENV DIST_REQUIRE_ALL_TOOLS 1 diff --git a/src/ci/docker/dist-x86_64-linux/Dockerfile b/src/ci/docker/dist-x86_64-linux/Dockerfile index 01f6db03e8ee0..7e3cc10b0c10c 100644 --- a/src/ci/docker/dist-x86_64-linux/Dockerfile +++ b/src/ci/docker/dist-x86_64-linux/Dockerfile @@ -106,3 +106,5 @@ ENV DIST_SRC 1 # When we build cargo in this container, we don't want it to use the system # libcurl, instead it should compile its own. ENV LIBCURL_NO_PKG_CONFIG 1 + +ENV DIST_REQUIRE_ALL_TOOLS 1 diff --git a/src/ci/run.sh b/src/ci/run.sh index 6a571bfad135d..a9e506645f189 100755 --- a/src/ci/run.sh +++ b/src/ci/run.sh @@ -76,6 +76,10 @@ else fi fi +if [ "$RUST_RELEASE_CHANNEL" = "nightly" ] || [ "$DIST_REQUIRE_ALL_TOOLS" = "" ]; then + RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-missing-tools" +fi + # We've had problems in the past of shell scripts leaking fds into the sccache # server (#48192) which causes Cargo to erroneously think that a build script # hasn't finished yet. Try to solve that problem by starting a very long-lived diff --git a/src/liballoc/vec.rs b/src/liballoc/vec.rs index e845438c0a836..2bc037e3fee12 100644 --- a/src/liballoc/vec.rs +++ b/src/liballoc/vec.rs @@ -1822,12 +1822,12 @@ impl SpecExtend for Vec unsafe { let mut ptr = self.as_mut_ptr().add(self.len()); let mut local_len = SetLenOnDrop::new(&mut self.len); - for element in iterator { + iterator.for_each(move |element| { ptr::write(ptr, element); ptr = ptr.offset(1); // NB can't overflow since we would have had to alloc the address space local_len.increment_len(1); - } + }); } } else { self.extend_desugared(iterator) diff --git a/src/librustc/Cargo.toml b/src/librustc/Cargo.toml index 6c3b52196a3a2..cd198db09fd57 100644 --- a/src/librustc/Cargo.toml +++ b/src/librustc/Cargo.toml @@ -34,6 +34,7 @@ byteorder = { version = "1.1", features = ["i128"]} chalk-engine = { version = "0.7.0", default-features=false } rustc_fs_util = { path = "../librustc_fs_util" } smallvec = { version = "0.6.5", features = ["union"] } +getopts = "=0.2.17" # Note that these dependencies are a lie, they're just here to get linkage to # work. diff --git a/src/librustc/mir/interpret/value.rs b/src/librustc/mir/interpret/value.rs index d695ad88e47aa..c81d55e69b61a 100644 --- a/src/librustc/mir/interpret/value.rs +++ b/src/librustc/mir/interpret/value.rs @@ -171,7 +171,7 @@ impl<'tcx> Scalar { pub fn from_uint(i: impl Into, size: Size) -> Self { let i = i.into(); debug_assert_eq!(truncate(i, size), i, - "Unsigned value {} does not fit in {} bits", i, size.bits()); + "Unsigned value {} does not fit in {} bits", i, size.bits()); Scalar::Bits { bits: i, size: size.bytes() as u8 } } @@ -181,7 +181,7 @@ impl<'tcx> Scalar { // `into` performed sign extension, we have to truncate let truncated = truncate(i as u128, size); debug_assert_eq!(sign_extend(truncated, size) as i128, i, - "Signed value {} does not fit in {} bits", i, size.bits()); + "Signed value {} does not fit in {} bits", i, size.bits()); Scalar::Bits { bits: truncated, size: size.bytes() as u8 } } diff --git a/src/librustc/mir/mod.rs b/src/librustc/mir/mod.rs index 27ef01b93cda1..30117f90dc69f 100644 --- a/src/librustc/mir/mod.rs +++ b/src/librustc/mir/mod.rs @@ -12,7 +12,6 @@ //! //! [rustc guide]: https://rust-lang-nursery.github.io/rustc-guide/mir/index.html -use graphviz::IntoCow; use hir::def::CtorKind; use hir::def_id::DefId; use hir::{self, HirId, InlineAsm}; @@ -327,22 +326,20 @@ impl<'tcx> Mir<'tcx> { if idx < stmts.len() { &stmts[idx].source_info } else { - assert!(idx == stmts.len()); + assert_eq!(idx, stmts.len()); &block.terminator().source_info } } /// Check if `sub` is a sub scope of `sup` pub fn is_sub_scope(&self, mut sub: SourceScope, sup: SourceScope) -> bool { - loop { - if sub == sup { - return true; - } + while sub != sup { match self.source_scopes[sub].parent_scope { None => return false, Some(p) => sub = p, } } + true } /// Return the return type, it always return first element from `local_decls` array @@ -526,9 +523,7 @@ impl BorrowKind { pub fn allows_two_phase_borrow(&self) -> bool { match *self { BorrowKind::Shared | BorrowKind::Shallow | BorrowKind::Unique => false, - BorrowKind::Mut { - allow_two_phase_borrow, - } => allow_two_phase_borrow, + BorrowKind::Mut { allow_two_phase_borrow } => allow_two_phase_borrow, } } } @@ -1574,42 +1569,42 @@ impl<'tcx> TerminatorKind<'tcx> { }; fmt_const_val(&mut s, &c).unwrap(); s.into() - }).chain(iter::once(String::from("otherwise").into())) + }).chain(iter::once("otherwise".into())) .collect() } Call { destination: Some(_), cleanup: Some(_), .. - } => vec!["return".into_cow(), "unwind".into_cow()], + } => vec!["return".into(), "unwind".into()], Call { destination: Some(_), cleanup: None, .. - } => vec!["return".into_cow()], + } => vec!["return".into()], Call { destination: None, cleanup: Some(_), .. - } => vec!["unwind".into_cow()], + } => vec!["unwind".into()], Call { destination: None, cleanup: None, .. } => vec![], - Yield { drop: Some(_), .. } => vec!["resume".into_cow(), "drop".into_cow()], - Yield { drop: None, .. } => vec!["resume".into_cow()], + Yield { drop: Some(_), .. } => vec!["resume".into(), "drop".into()], + Yield { drop: None, .. } => vec!["resume".into()], DropAndReplace { unwind: None, .. } | Drop { unwind: None, .. } => { - vec!["return".into_cow()] + vec!["return".into()] } DropAndReplace { unwind: Some(_), .. } | Drop { unwind: Some(_), .. - } => vec!["return".into_cow(), "unwind".into_cow()], + } => vec!["return".into(), "unwind".into()], Assert { cleanup: None, .. } => vec!["".into()], - Assert { .. } => vec!["success".into_cow(), "unwind".into_cow()], + Assert { .. } => vec!["success".into(), "unwind".into()], FalseEdges { ref imaginary_targets, .. diff --git a/src/librustc/mir/mono.rs b/src/librustc/mir/mono.rs index 4d353a36db02a..7520695a7cd90 100644 --- a/src/librustc/mir/mono.rs +++ b/src/librustc/mir/mono.rs @@ -325,7 +325,7 @@ impl<'a, 'gcx: 'tcx, 'tcx: 'a> CodegenUnitNameBuilder<'a, 'gcx, 'tcx> { String::new() }; - let crate_disambiguator = format!("{}", tcx.crate_disambiguator(cnum)); + let crate_disambiguator = tcx.crate_disambiguator(cnum).to_string(); // Using a shortened disambiguator of about 40 bits format!("{}.{}{}", tcx.crate_name(cnum), diff --git a/src/librustc/mir/tcx.rs b/src/librustc/mir/tcx.rs index 2a25e057a7149..fc7b4862b0ae5 100644 --- a/src/librustc/mir/tcx.rs +++ b/src/librustc/mir/tcx.rs @@ -87,8 +87,8 @@ impl<'a, 'gcx, 'tcx> PlaceTy<'tcx> { assert!(index < adt_def.variants.len()); assert_eq!(adt_def, adt_def1); PlaceTy::Downcast { adt_def, - substs, - variant_index: index } + substs, + variant_index: index } } _ => { bug!("cannot downcast non-ADT type: `{:?}`", self) @@ -151,7 +151,7 @@ impl<'tcx> Place<'tcx> { } }, _ => None, - } + } _ => None, } } @@ -255,9 +255,9 @@ impl<'tcx> Operand<'tcx> { impl<'tcx> BinOp { pub fn ty<'a, 'gcx>(&self, tcx: TyCtxt<'a, 'gcx, 'tcx>, - lhs_ty: Ty<'tcx>, - rhs_ty: Ty<'tcx>) - -> Ty<'tcx> { + lhs_ty: Ty<'tcx>, + rhs_ty: Ty<'tcx>) + -> Ty<'tcx> { // FIXME: handle SIMD correctly match self { &BinOp::Add | &BinOp::Sub | &BinOp::Mul | &BinOp::Div | &BinOp::Rem | diff --git a/src/librustc/ty/fold.rs b/src/librustc/ty/fold.rs index 6bf493b496c8b..dd7099a406446 100644 --- a/src/librustc/ty/fold.rs +++ b/src/librustc/ty/fold.rs @@ -780,11 +780,10 @@ impl<'tcx> TypeVisitor<'tcx> for LateBoundRegionsCollector { } fn visit_region(&mut self, r: ty::Region<'tcx>) -> bool { - match *r { - ty::ReLateBound(debruijn, br) if debruijn == self.current_index => { + if let ty::ReLateBound(debruijn, br) = *r { + if debruijn == self.current_index { self.regions.insert(br); } - _ => { } } false } diff --git a/src/librustc/ty/instance.rs b/src/librustc/ty/instance.rs index a6e181a26f420..30737ec0c0a45 100644 --- a/src/librustc/ty/instance.rs +++ b/src/librustc/ty/instance.rs @@ -229,11 +229,11 @@ impl<'a, 'b, 'tcx> Instance<'tcx> { } pub fn resolve_closure( - tcx: TyCtxt<'a, 'tcx, 'tcx>, - def_id: DefId, - substs: ty::ClosureSubsts<'tcx>, - requested_kind: ty::ClosureKind) - -> Instance<'tcx> + tcx: TyCtxt<'a, 'tcx, 'tcx>, + def_id: DefId, + substs: ty::ClosureSubsts<'tcx>, + requested_kind: ty::ClosureKind) + -> Instance<'tcx> { let actual_kind = substs.closure_kind(def_id, tcx); @@ -253,8 +253,8 @@ fn resolve_associated_item<'a, 'tcx>( ) -> Option> { let def_id = trait_item.def_id; debug!("resolve_associated_item(trait_item={:?}, \ - trait_id={:?}, \ - rcvr_substs={:?})", + trait_id={:?}, \ + rcvr_substs={:?})", def_id, trait_id, rcvr_substs); let trait_ref = ty::TraitRef::from_method(tcx, trait_id, rcvr_substs); @@ -278,7 +278,7 @@ fn resolve_associated_item<'a, 'tcx>( traits::VtableClosure(closure_data) => { let trait_closure_kind = tcx.lang_items().fn_trait_kind(trait_id).unwrap(); Some(Instance::resolve_closure(tcx, closure_data.closure_def_id, closure_data.substs, - trait_closure_kind)) + trait_closure_kind)) } traits::VtableFnPointer(ref data) => { Some(Instance { @@ -308,7 +308,7 @@ fn resolve_associated_item<'a, 'tcx>( } fn needs_fn_once_adapter_shim<'a, 'tcx>(actual_closure_kind: ty::ClosureKind, - trait_closure_kind: ty::ClosureKind) + trait_closure_kind: ty::ClosureKind) -> Result { match (actual_closure_kind, trait_closure_kind) { @@ -342,13 +342,14 @@ fn needs_fn_once_adapter_shim<'a, 'tcx>(actual_closure_kind: ty::ClosureKind, } fn fn_once_adapter_instance<'a, 'tcx>( - tcx: TyCtxt<'a, 'tcx, 'tcx>, - closure_did: DefId, - substs: ty::ClosureSubsts<'tcx>, - ) -> Instance<'tcx> { + tcx: TyCtxt<'a, 'tcx, 'tcx>, + closure_did: DefId, + substs: ty::ClosureSubsts<'tcx>) + -> Instance<'tcx> +{ debug!("fn_once_adapter_shim({:?}, {:?})", - closure_did, - substs); + closure_did, + substs); let fn_once = tcx.lang_items().fn_once_trait().unwrap(); let call_once = tcx.associated_items(fn_once) .find(|it| it.kind == ty::AssociatedKind::Method) diff --git a/src/librustc/ty/item_path.rs b/src/librustc/ty/item_path.rs index c8d104e6c321f..bd4fee304a332 100644 --- a/src/librustc/ty/item_path.rs +++ b/src/librustc/ty/item_path.rs @@ -221,7 +221,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { let data = cur_def_key.disambiguated_data.data; let symbol = data.get_opt_name().map(|n| n.as_str()).unwrap_or_else(|| { - if let DefPathData::CrateRoot = data { // reexported `extern crate` (#43189) + if let DefPathData::CrateRoot = data { // reexported `extern crate` (#43189) self.original_crate_name(cur_def.krate).as_str() } else { Symbol::intern("").as_str() @@ -365,9 +365,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { if let Some(trait_ref) = impl_trait_ref { // Trait impls. - buffer.push(&format!("<{} as {}>", - self_ty, - trait_ref)); + buffer.push(&format!("<{} as {}>", self_ty, trait_ref)); return; } diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index 8bfe46568eb19..671a725a1c668 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -32,11 +32,11 @@ pub trait IntegerExt { fn to_ty<'a, 'tcx>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, signed: bool) -> Ty<'tcx>; fn from_attr(cx: C, ity: attr::IntType) -> Integer; fn repr_discr<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, - ty: Ty<'tcx>, - repr: &ReprOptions, - min: i128, - max: i128) - -> (Integer, bool); + ty: Ty<'tcx>, + repr: &ReprOptions, + min: i128, + max: i128) + -> (Integer, bool); } impl IntegerExt for Integer { @@ -76,11 +76,11 @@ impl IntegerExt for Integer { /// N.B.: u128 values above i128::MAX will be treated as signed, but /// that shouldn't affect anything, other than maybe debuginfo. fn repr_discr<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, - ty: Ty<'tcx>, - repr: &ReprOptions, - min: i128, - max: i128) - -> (Integer, bool) { + ty: Ty<'tcx>, + repr: &ReprOptions, + min: i128, + max: i128) + -> (Integer, bool) { // Theoretically, negative values could be larger in unsigned representation // than the unsigned representation of the signed minimum. However, if there // are any negative values, the only valid unsigned representation is u128 @@ -96,7 +96,7 @@ impl IntegerExt for Integer { let fit = if ity.is_signed() { signed_fit } else { unsigned_fit }; if discr < fit { bug!("Integer::repr_discr: `#[repr]` hint too small for \ - discriminant range of enum `{}", ty) + discriminant range of enum `{}", ty) } return (discr, ity.is_signed()); } @@ -106,7 +106,7 @@ impl IntegerExt for Integer { // WARNING: the ARM EABI has two variants; the one corresponding // to `at_least == I32` appears to be used on Linux and NetBSD, // but some systems may use the variant corresponding to no - // lower bound. However, we don't run on those yet...? + // lower bound. However, we don't run on those yet...? "arm" => min_from_extern = Some(I32), _ => min_from_extern = Some(I32), } @@ -250,6 +250,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { /// A univariant, but with a prefix of an arbitrary size & alignment (e.g. enum tag). Prefixed(Size, Align), } + let univariant_uninterned = |fields: &[TyLayout<'_>], repr: &ReprOptions, kind| { let packed = repr.packed(); if packed && repr.align > 0 { @@ -324,7 +325,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { let field = fields[i as usize]; if !sized { bug!("univariant: field #{} of `{}` comes after unsized field", - offsets.len(), ty); + offsets.len(), ty); } if field.is_unsized() { @@ -628,7 +629,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { }; univariant(&tys.iter().map(|ty| self.layout_of(ty)).collect::, _>>()?, - &ReprOptions::default(), kind)? + &ReprOptions::default(), kind)? } // SIMD vector types. @@ -640,7 +641,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { Abi::Scalar(ref scalar) => scalar.clone(), _ => { tcx.sess.fatal(&format!("monomorphising SIMD type `{}` with \ - a non-machine element type `{}`", + a non-machine element type `{}`", ty, element.ty)); } }; @@ -743,7 +744,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { // Only one variant is present. (present_second.is_none() && // Representation optimizations are allowed. - !def.repr.inhibit_enum_layout_opt()); + !def.repr.inhibit_enum_layout_opt()); if is_struct { // Struct, or univariant enum equivalent to a struct. // (Typechecking will reject discriminant-sizing attrs.) @@ -755,7 +756,7 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { let param_env = tcx.param_env(def.did); let last_field = def.variants[v].fields.last().unwrap(); let always_sized = tcx.type_of(last_field.did) - .is_sized(tcx.at(DUMMY_SP), param_env); + .is_sized(tcx.at(DUMMY_SP), param_env); if !always_sized { StructKind::MaybeUnsized } else { StructKind::AlwaysSized } }; @@ -1258,8 +1259,8 @@ impl<'a, 'tcx> LayoutCx<'tcx, TyCtxt<'a, 'tcx, 'tcx>> { let fields: Vec<_> = variant_def.fields.iter().map(|f| f.ident.name).collect(); build_variant_info(Some(variant_def.name), - &fields, - layout.for_variant(self, i)) + &fields, + layout.for_variant(self, i)) }) .collect(); record(adt_kind.into(), adt_packed, match layout.variants { diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index b2281691bd660..41db7c5f0390f 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -861,24 +861,22 @@ pub struct GenericParamDef { impl GenericParamDef { pub fn to_early_bound_region_data(&self) -> ty::EarlyBoundRegion { - match self.kind { - GenericParamDefKind::Lifetime => { - ty::EarlyBoundRegion { - def_id: self.def_id, - index: self.index, - name: self.name, - } + if let GenericParamDefKind::Lifetime = self.kind { + ty::EarlyBoundRegion { + def_id: self.def_id, + index: self.index, + name: self.name, } - _ => bug!("cannot convert a non-lifetime parameter def to an early bound region") + } else { + bug!("cannot convert a non-lifetime parameter def to an early bound region") } } pub fn to_bound_region(&self) -> ty::BoundRegion { - match self.kind { - GenericParamDefKind::Lifetime => { - self.to_early_bound_region_data().to_bound_region() - } - _ => bug!("cannot convert a non-lifetime parameter def to an early bound region") + if let GenericParamDefKind::Lifetime = self.kind { + self.to_early_bound_region_data().to_bound_region() + } else { + bug!("cannot convert a non-lifetime parameter def to an early bound region") } } } @@ -956,7 +954,7 @@ impl<'a, 'gcx, 'tcx> Generics { } } else { tcx.generics_of(self.parent.expect("parent_count>0 but no parent?")) - .region_param(param, tcx) + .region_param(param, tcx) } } @@ -973,7 +971,7 @@ impl<'a, 'gcx, 'tcx> Generics { } } else { tcx.generics_of(self.parent.expect("parent_count>0 but no parent?")) - .type_param(param, tcx) + .type_param(param, tcx) } } } @@ -1375,7 +1373,7 @@ impl<'tcx> Predicate<'tcx> { } }; - // The only reason to collect into a vector here is that I was + // FIXME: The only reason to collect into a vector here is that I was // too lazy to make the full (somewhat complicated) iterator // type that would be needed here. But I wanted this fn to // return an iterator conceptually, rather than a `Vec`, so as @@ -2192,7 +2190,7 @@ impl<'a, 'gcx, 'tcx> AdtDef { if !expr_did.is_local() { span_bug!(tcx.def_span(expr_did), "variant discriminant evaluation succeeded \ - in its crate but failed locally"); + in its crate but failed locally"); } None } @@ -2328,9 +2326,9 @@ impl<'a, 'gcx, 'tcx> AdtDef { debug!("sized_constraint_for_ty({:?}) intermediate = {:?}", ty, adt_tys); adt_tys.iter() - .map(|ty| ty.subst(tcx, substs)) - .flat_map(|ty| self.sized_constraint_for_ty(tcx, ty)) - .collect() + .map(|ty| ty.subst(tcx, substs)) + .flat_map(|ty| self.sized_constraint_for_ty(tcx, ty)) + .collect() } Projection(..) | Opaque(..) => { @@ -2869,9 +2867,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } } -fn associated_item<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) - -> AssociatedItem -{ +fn associated_item<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> AssociatedItem { let id = tcx.hir.as_local_node_id(def_id).unwrap(); let parent_id = tcx.hir.get_parent(id); let parent_def_id = tcx.hir.local_def_id(parent_id); @@ -2985,8 +2981,8 @@ pub fn is_impl_trait_defn(tcx: TyCtxt<'_, '_, '_>, def_id: DefId) -> Option(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) - -> ParamEnv<'tcx> { - + -> ParamEnv<'tcx> +{ // The param_env of an impl Trait type is its defining function's param_env if let Some(parent) = is_impl_trait_defn(tcx, def_id) { return param_env(tcx, parent); diff --git a/src/librustc/ty/outlives.rs b/src/librustc/ty/outlives.rs index 68f6707087687..350af6b93057e 100644 --- a/src/librustc/ty/outlives.rs +++ b/src/librustc/ty/outlives.rs @@ -73,7 +73,6 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { // projection). match ty.sty { ty::Closure(def_id, ref substs) => { - for upvar_ty in substs.upvar_tys(def_id, *self) { self.compute_components(upvar_ty, out); } @@ -181,9 +180,5 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } fn push_region_constraints<'tcx>(out: &mut Vec>, regions: Vec>) { - for r in regions { - if !r.is_late_bound() { - out.push(Component::Region(r)); - } - } + out.extend(regions.iter().filter(|&r| !r.is_late_bound()).map(|r| Component::Region(r))); } diff --git a/src/librustc/ty/relate.rs b/src/librustc/ty/relate.rs index 547f7cecc4e06..082c1bd5fea44 100644 --- a/src/librustc/ty/relate.rs +++ b/src/librustc/ty/relate.rs @@ -274,9 +274,10 @@ impl<'tcx> Relate<'tcx> for Vec> { if a.len() != b.len() { Err(TypeError::ProjectionBoundsLength(expected_found(relation, &a.len(), &b.len()))) } else { - a.iter().zip(b) - .map(|(a, b)| relation.relate(a, b)) - .collect() + a.iter() + .zip(b) + .map(|(a, b)| relation.relate(a, b)) + .collect() } } } @@ -331,7 +332,7 @@ impl<'tcx> Relate<'tcx> for GeneratorWitness<'tcx> { -> RelateResult<'tcx, GeneratorWitness<'tcx>> where R: TypeRelation<'a, 'gcx, 'tcx>, 'gcx: 'a+'tcx, 'tcx: 'a { - assert!(a.0.len() == b.0.len()); + assert_eq!(a.0.len(), b.0.len()); let tcx = relation.tcx(); let types = tcx.mk_type_list(a.0.iter().zip(b.0).map(|(a, b)| relation.relate(a, b)))?; Ok(GeneratorWitness(types)) @@ -478,27 +479,24 @@ pub fn super_relate_tys<'a, 'gcx, 'tcx, R>(relation: &mut R, ConstValue::Unevaluated(def_id, substs) => { // FIXME(eddyb) get the right param_env. let param_env = ty::ParamEnv::empty(); - match tcx.lift_to_global(&substs) { - Some(substs) => { - let instance = ty::Instance::resolve( - tcx.global_tcx(), - param_env, - def_id, - substs, - ); - if let Some(instance) = instance { - let cid = GlobalId { - instance, - promoted: None - }; - if let Some(s) = tcx.const_eval(param_env.and(cid)) - .ok() - .map(|c| c.unwrap_usize(tcx)) { - return Ok(s) - } + if let Some(substs) = tcx.lift_to_global(&substs) { + let instance = ty::Instance::resolve( + tcx.global_tcx(), + param_env, + def_id, + substs, + ); + if let Some(instance) = instance { + let cid = GlobalId { + instance, + promoted: None + }; + if let Some(s) = tcx.const_eval(param_env.and(cid)) + .ok() + .map(|c| c.unwrap_usize(tcx)) { + return Ok(s) } - }, - None => {} + } } tcx.sess.delay_span_bug(tcx.def_span(def_id), "array length could not be evaluated"); diff --git a/src/librustc/ty/structural_impls.rs b/src/librustc/ty/structural_impls.rs index aab268c07c4fb..729a05eb5d43a 100644 --- a/src/librustc/ty/structural_impls.rs +++ b/src/librustc/ty/structural_impls.rs @@ -386,12 +386,12 @@ impl<'a, 'tcx> Lift<'tcx> for ty::GenSig<'a> { type Lifted = ty::GenSig<'tcx>; fn lift_to_tcx<'b, 'gcx>(&self, tcx: TyCtxt<'b, 'gcx, 'tcx>) -> Option { tcx.lift(&(self.yield_ty, self.return_ty)) - .map(|(yield_ty, return_ty)| { - ty::GenSig { - yield_ty, - return_ty, - } - }) + .map(|(yield_ty, return_ty)| { + ty::GenSig { + yield_ty, + return_ty, + } + }) } } @@ -452,7 +452,6 @@ impl<'a, 'tcx> Lift<'tcx> for ty::error::TypeError<'a> { CyclicTy(t) => return tcx.lift(&t).map(|t| CyclicTy(t)), ProjectionMismatched(x) => ProjectionMismatched(x), ProjectionBoundsLength(x) => ProjectionBoundsLength(x), - Sorts(ref x) => return tcx.lift(x).map(Sorts), OldStyleLUB(ref x) => return tcx.lift(x).map(OldStyleLUB), ExistentialMismatch(ref x) => return tcx.lift(x).map(ExistentialMismatch) @@ -817,22 +816,16 @@ impl<'tcx> TypeFoldable<'tcx> for ty::instance::Instance<'tcx> { use ty::InstanceDef::*; self.substs.visit_with(visitor) || match self.def { - Item(did) => did.visit_with(visitor), - Intrinsic(did) => did.visit_with(visitor), - FnPtrShim(did, ty) => { - did.visit_with(visitor) || - ty.visit_with(visitor) + Item(did) | Intrinsic(did) | Virtual(did, _) => { + did.visit_with(visitor) }, - Virtual(did, _) => did.visit_with(visitor), - ClosureOnceShim { call_once } => call_once.visit_with(visitor), - DropGlue(did, ty) => { - did.visit_with(visitor) || - ty.visit_with(visitor) + FnPtrShim(did, ty) | CloneShim(did, ty) => { + did.visit_with(visitor) || ty.visit_with(visitor) }, - CloneShim(did, ty) => { - did.visit_with(visitor) || - ty.visit_with(visitor) + DropGlue(did, ty) => { + did.visit_with(visitor) || ty.visit_with(visitor) }, + ClosureOnceShim { call_once } => call_once.visit_with(visitor), } } } diff --git a/src/librustc/ty/sty.rs b/src/librustc/ty/sty.rs index 6c40dd8923916..bc5186b08b864 100644 --- a/src/librustc/ty/sty.rs +++ b/src/librustc/ty/sty.rs @@ -987,11 +987,7 @@ impl<'a, 'gcx, 'tcx> ParamTy { // FIXME(#50125): Ignoring `Self` with `idx != 0` might lead to weird behavior elsewhere, // but this should only be possible when using `-Z continue-parse-after-error` like // `compile-fail/issue-36638.rs`. - if self.name == keywords::SelfType.name().as_str() && self.idx == 0 { - true - } else { - false - } + self.name == keywords::SelfType.name().as_str() && self.idx == 0 } } @@ -2021,18 +2017,14 @@ impl<'tcx> Const<'tcx> { tcx: TyCtxt<'_, '_, '_>, ty: ParamEnvAnd<'tcx, Ty<'tcx>>, ) -> u128 { - match self.assert_bits(tcx, ty) { - Some(val) => val, - None => bug!("expected bits of {}, got {:#?}", ty.value, self), - } + self.assert_bits(tcx, ty).unwrap_or_else(|| + bug!("expected bits of {}, got {:#?}", ty.value, self)) } #[inline] pub fn unwrap_usize(&self, tcx: TyCtxt<'_, '_, '_>) -> u64 { - match self.assert_usize(tcx) { - Some(val) => val, - None => bug!("expected constant usize, got {:#?}", self), - } + self.assert_usize(tcx).unwrap_or_else(|| + bug!("expected constant usize, got {:#?}", self)) } } diff --git a/src/librustc/ty/subst.rs b/src/librustc/ty/subst.rs index 4b3a70e525ec3..c0a42fd585482 100644 --- a/src/librustc/ty/subst.rs +++ b/src/librustc/ty/subst.rs @@ -205,10 +205,9 @@ impl<'a, 'gcx, 'tcx> Substs<'tcx> { where F: FnMut(&ty::GenericParamDef, &[Kind<'tcx>]) -> Kind<'tcx> { Substs::for_item(tcx, def_id, |param, substs| { - match self.get(param.index as usize) { - Some(&kind) => kind, - None => mk_kind(param, substs), - } + self.get(param.index as usize) + .cloned() + .unwrap_or_else(|| mk_kind(param, substs)) }) } @@ -230,6 +229,7 @@ impl<'a, 'gcx, 'tcx> Substs<'tcx> { mk_kind: &mut F) where F: FnMut(&ty::GenericParamDef, &[Kind<'tcx>]) -> Kind<'tcx> { + substs.reserve(defs.params.len()); for param in &defs.params { let kind = mk_kind(param, substs); assert_eq!(param.index as usize, substs.len()); @@ -361,7 +361,7 @@ impl<'tcx> serialize::UseSpecializedDecodable for &'tcx Substs<'tcx> {} pub trait Subst<'tcx> : Sized { fn subst<'a, 'gcx>(&self, tcx: TyCtxt<'a, 'gcx, 'tcx>, - substs: &[Kind<'tcx>]) -> Self { + substs: &[Kind<'tcx>]) -> Self { self.subst_spanned(tcx, substs, None) } @@ -489,7 +489,7 @@ impl<'a, 'gcx, 'tcx> SubstFolder<'a, 'gcx, 'tcx> { span_bug!( span, "Type parameter `{:?}` ({:?}/{}) out of range \ - when substituting (root type={:?}) substs={:?}", + when substituting (root type={:?}) substs={:?}", p, source_ty, p.idx, diff --git a/src/librustc/ty/trait_def.rs b/src/librustc/ty/trait_def.rs index 22277128383b5..af678c3e9924b 100644 --- a/src/librustc/ty/trait_def.rs +++ b/src/librustc/ty/trait_def.rs @@ -138,10 +138,8 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } } } else { - for v in impls.non_blanket_impls.values() { - for &impl_def_id in v { - f(impl_def_id); - } + for &impl_def_id in impls.non_blanket_impls.values().flatten() { + f(impl_def_id); } } } @@ -173,9 +171,9 @@ pub(super) fn trait_impls_of_provider<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, fast_reject::simplify_type(tcx, impl_self_ty, false) { impls.non_blanket_impls - .entry(simplified_self_ty) - .or_default() - .push(impl_def_id); + .entry(simplified_self_ty) + .or_default() + .push(impl_def_id); } else { impls.blanket_impls.push(impl_def_id); } diff --git a/src/librustc/ty/util.rs b/src/librustc/ty/util.rs index 93fc77359e43a..e4141211a4fe5 100644 --- a/src/librustc/ty/util.rs +++ b/src/librustc/ty/util.rs @@ -119,17 +119,17 @@ pub trait IntTypeExt { impl IntTypeExt for attr::IntType { fn to_ty<'a, 'gcx, 'tcx>(&self, tcx: TyCtxt<'a, 'gcx, 'tcx>) -> Ty<'tcx> { match *self { - SignedInt(ast::IntTy::I8) => tcx.types.i8, - SignedInt(ast::IntTy::I16) => tcx.types.i16, - SignedInt(ast::IntTy::I32) => tcx.types.i32, - SignedInt(ast::IntTy::I64) => tcx.types.i64, + SignedInt(ast::IntTy::I8) => tcx.types.i8, + SignedInt(ast::IntTy::I16) => tcx.types.i16, + SignedInt(ast::IntTy::I32) => tcx.types.i32, + SignedInt(ast::IntTy::I64) => tcx.types.i64, SignedInt(ast::IntTy::I128) => tcx.types.i128, - SignedInt(ast::IntTy::Isize) => tcx.types.isize, + SignedInt(ast::IntTy::Isize) => tcx.types.isize, UnsignedInt(ast::UintTy::U8) => tcx.types.u8, UnsignedInt(ast::UintTy::U16) => tcx.types.u16, UnsignedInt(ast::UintTy::U32) => tcx.types.u32, UnsignedInt(ast::UintTy::U64) => tcx.types.u64, - UnsignedInt(ast::UintTy::U128) => tcx.types.u128, + UnsignedInt(ast::UintTy::U128) => tcx.types.u128, UnsignedInt(ast::UintTy::Usize) => tcx.types.usize, } } @@ -205,11 +205,11 @@ impl<'tcx> ty::ParamEnv<'tcx> { let mut infringing = Vec::new(); for variant in &adt.variants { for field in &variant.fields { - let span = tcx.def_span(field.did); let ty = field.ty(tcx, substs); if ty.references_error() { continue; } + let span = tcx.def_span(field.did); let cause = ObligationCause { span, ..ObligationCause::dummy() }; let ctx = traits::FulfillmentContext::new(); match traits::fully_normalize(&infcx, ctx, cause, self, &ty) { @@ -257,16 +257,13 @@ impl<'a, 'tcx> TyCtxt<'a, 'tcx, 'tcx> { impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { pub fn has_error_field(self, ty: Ty<'tcx>) -> bool { - match ty.sty { - ty::Adt(def, substs) => { - for field in def.all_fields() { - let field_ty = field.ty(self, substs); - if let Error = field_ty.sty { - return true; - } + if let ty::Adt(def, substs) = ty.sty { + for field in def.all_fields() { + let field_ty = field.ty(self, substs); + if let Error = field_ty.sty { + return true; } } - _ => (), } false } @@ -421,7 +418,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { let ty = self.type_of(adt_did); self.for_each_relevant_impl(drop_trait, ty, |impl_did| { if let Some(item) = self.associated_items(impl_did).next() { - if let Ok(()) = validate(self, impl_did) { + if validate(self, impl_did).is_ok() { dtor_did = Some(item.def_id); } } @@ -513,7 +510,9 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { false } } - }).map(|(&item_param, _)| item_param).collect(); + }) + .map(|(&item_param, _)| item_param) + .collect(); debug!("destructor_constraint({:?}) = {:?}", def.did, result); result } @@ -674,8 +673,8 @@ impl<'a, 'tcx> ty::TyS<'tcx> { pub fn is_representable(&'tcx self, tcx: TyCtxt<'a, 'tcx, 'tcx>, sp: Span) - -> Representability { - + -> Representability + { // Iterate until something non-representable is found fn fold_repr>(iter: It) -> Representability { iter.fold(Representability::Representable, |r1, r2| { @@ -904,20 +903,17 @@ fn needs_drop_raw<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, let (param_env, ty) = query.into_parts(); let needs_drop = |ty: Ty<'tcx>| -> bool { - match tcx.try_needs_drop_raw(DUMMY_SP, param_env.and(ty)) { - Ok(v) => v, - Err(mut bug) => { - // Cycles should be reported as an error by `check_representable`. - // - // Consider the type as not needing drop in the meanwhile to - // avoid further errors. - // - // In case we forgot to emit a bug elsewhere, delay our - // diagnostic to get emitted as a compiler bug. - bug.delay_as_bug(); - false - } - } + tcx.try_needs_drop_raw(DUMMY_SP, param_env.and(ty)).unwrap_or_else(|mut bug| { + // Cycles should be reported as an error by `check_representable`. + // + // Consider the type as not needing drop in the meanwhile to + // avoid further errors. + // + // In case we forgot to emit a bug elsewhere, delay our + // diagnostic to get emitted as a compiler bug. + bug.delay_as_bug(); + false + }) }; assert!(!ty.needs_infer()); diff --git a/src/librustc/ty/walk.rs b/src/librustc/ty/walk.rs index cf87c2d457471..540765dfaafcf 100644 --- a/src/librustc/ty/walk.rs +++ b/src/librustc/ty/walk.rs @@ -54,7 +54,7 @@ impl<'tcx> Iterator for TypeWalker<'tcx> { debug!("next(): stack={:?}", self.stack); match self.stack.pop() { None => { - return None; + None } Some(ty) => { self.last_subtree = self.stack.len(); diff --git a/src/librustc/ty/wf.rs b/src/librustc/ty/wf.rs index 63206a660df41..e2cc55a693f3d 100644 --- a/src/librustc/ty/wf.rs +++ b/src/librustc/ty/wf.rs @@ -223,8 +223,8 @@ impl<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx> { let predicate = ty::Predicate::ConstEvaluatable(def_id, substs); let cause = self.cause(traits::MiscObligation); self.out.push(traits::Obligation::new(cause, - self.param_env, - predicate)); + self.param_env, + predicate)); } } @@ -493,6 +493,7 @@ impl<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx> { let explicit_bound = region; + self.out.reserve(implicit_bounds.len()); for implicit_bound in implicit_bounds { let cause = self.cause(traits::ObjectTypeBound(ty, explicit_bound)); let outlives = ty::Binder::dummy( diff --git a/src/librustc_driver/Cargo.toml b/src/librustc_driver/Cargo.toml index 470c8b03d0bca..18c69e66e8a8c 100644 --- a/src/librustc_driver/Cargo.toml +++ b/src/librustc_driver/Cargo.toml @@ -15,6 +15,7 @@ log = "0.4" env_logger = { version = "0.5", default-features = false } rustc-rayon = "0.1.1" scoped-tls = { version = "0.1.1", features = ["nightly"] } +getopts = "=0.2.17" rustc = { path = "../librustc" } rustc_allocator = { path = "../librustc_allocator" } rustc_target = { path = "../librustc_target" } diff --git a/src/librustc_mir/interpret/memory.rs b/src/librustc_mir/interpret/memory.rs index 11e27a597fbca..222d1164667d3 100644 --- a/src/librustc_mir/interpret/memory.rs +++ b/src/librustc_mir/interpret/memory.rs @@ -971,7 +971,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { /// Undefined bytes impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { - // FIXME(solson): This is a very naive, slow version. + // FIXME: Add a fast version for the common, nonoverlapping case fn copy_undef_mask( &mut self, src: Pointer, diff --git a/src/libstd/error.rs b/src/libstd/error.rs index 3de4a1bd4170b..7a5353bb60ff6 100644 --- a/src/libstd/error.rs +++ b/src/libstd/error.rs @@ -217,6 +217,35 @@ pub trait Error: Debug + Display { #[stable(feature = "rust1", since = "1.0.0")] impl<'a, E: Error + 'a> From for Box { + /// Converts a type of [`Error`] into a box of dyn [`Error`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::fmt; + /// use std::mem; + /// + /// #[derive(Debug)] + /// struct AnError; + /// + /// impl fmt::Display for AnError { + /// fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + /// write!(f , "An error") + /// } + /// } + /// + /// impl Error for AnError { + /// fn description(&self) -> &str { + /// "Description of an error" + /// } + /// } + /// + /// let an_error = AnError; + /// assert!(0 == mem::size_of_val(&an_error)); + /// let a_boxed_error = Box::::from(an_error); + /// assert!(mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: E) -> Box { Box::new(err) } @@ -224,6 +253,41 @@ impl<'a, E: Error + 'a> From for Box { #[stable(feature = "rust1", since = "1.0.0")] impl<'a, E: Error + Send + Sync + 'a> From for Box { + /// Converts a type of [`Error`] + [`Send`] + [`Sync`] into a box of dyn [`Error`] + + /// [`Send`] + [`Sync`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::fmt; + /// use std::mem; + /// + /// #[derive(Debug)] + /// struct AnError; + /// + /// impl fmt::Display for AnError { + /// fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + /// write!(f , "An error") + /// } + /// } + /// + /// impl Error for AnError { + /// fn description(&self) -> &str { + /// "Description of an error" + /// } + /// } + /// + /// unsafe impl Send for AnError {} + /// + /// unsafe impl Sync for AnError {} + /// + /// let an_error = AnError; + /// assert!(0 == mem::size_of_val(&an_error)); + /// let a_boxed_error = Box::::from(an_error); + /// assert!( + /// mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: E) -> Box { Box::new(err) } @@ -231,6 +295,19 @@ impl<'a, E: Error + Send + Sync + 'a> From for Box for Box { + /// Converts a [`String`] into a box of dyn [`Error`] + [`Send`] + [`Sync`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// + /// let a_string_error = "a string error".to_string(); + /// let a_boxed_error = Box::::from(a_string_error); + /// assert!( + /// mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: String) -> Box { #[derive(Debug)] struct StringError(String); @@ -251,6 +328,18 @@ impl From for Box { #[stable(feature = "string_box_error", since = "1.6.0")] impl From for Box { + /// Converts a [`String`] into a box of dyn [`Error`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// + /// let a_string_error = "a string error".to_string(); + /// let a_boxed_error = Box::::from(a_string_error); + /// assert!(mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(str_err: String) -> Box { let err1: Box = From::from(str_err); let err2: Box = err1; @@ -260,6 +349,19 @@ impl From for Box { #[stable(feature = "rust1", since = "1.0.0")] impl<'a, 'b> From<&'b str> for Box { + /// Converts a [`str`] into a box of dyn [`Error`] + [`Send`] + [`Sync`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// + /// let a_str_error = "a str error"; + /// let a_boxed_error = Box::::from(a_str_error); + /// assert!( + /// mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: &'b str) -> Box { From::from(String::from(err)) } @@ -267,6 +369,18 @@ impl<'a, 'b> From<&'b str> for Box { #[stable(feature = "string_box_error", since = "1.6.0")] impl<'a> From<&'a str> for Box { + /// Converts a [`str`] into a box of dyn [`Error`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// + /// let a_str_error = "a str error"; + /// let a_boxed_error = Box::::from(a_str_error); + /// assert!(mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: &'a str) -> Box { From::from(String::from(err)) } @@ -274,6 +388,20 @@ impl<'a> From<&'a str> for Box { #[stable(feature = "cow_box_error", since = "1.22.0")] impl<'a, 'b> From> for Box { + /// Converts a [`Cow`] into a box of dyn [`Error`] + [`Send`] + [`Sync`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// use std::borrow::Cow; + /// + /// let a_cow_str_error = Cow::from("a str error"); + /// let a_boxed_error = Box::::from(a_cow_str_error); + /// assert!( + /// mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: Cow<'b, str>) -> Box { From::from(String::from(err)) } @@ -281,6 +409,19 @@ impl<'a, 'b> From> for Box { #[stable(feature = "cow_box_error", since = "1.22.0")] impl<'a> From> for Box { + /// Converts a [`Cow`] into a box of dyn [`Error`]. + /// + /// # Examples + /// + /// ``` + /// use std::error::Error; + /// use std::mem; + /// use std::borrow::Cow; + /// + /// let a_cow_str_error = Cow::from("a str error"); + /// let a_boxed_error = Box::::from(a_cow_str_error); + /// assert!(mem::size_of::>() == mem::size_of_val(&a_boxed_error)) + /// ``` fn from(err: Cow<'a, str>) -> Box { From::from(String::from(err)) } diff --git a/src/test/debuginfo/associated-types.rs b/src/test/debuginfo/associated-types.rs index ccd94022711cd..229f9466b5122 100644 --- a/src/test/debuginfo/associated-types.rs +++ b/src/test/debuginfo/associated-types.rs @@ -51,33 +51,42 @@ // lldb-command:run // lldb-command:print arg -// lldb-check:[...]$0 = Struct { b: -1, b1: 0 } +// lldbg-check:[...]$0 = Struct { b: -1, b1: 0 } +// lldbr-check:(associated_types::Struct) arg = Struct { b: -1, b1: 0 } // lldb-command:continue // lldb-command:print inferred -// lldb-check:[...]$1 = 1 +// lldbg-check:[...]$1 = 1 +// lldbr-check:(i64) inferred = 1 // lldb-command:print explicitly -// lldb-check:[...]$2 = 1 +// lldbg-check:[...]$2 = 1 +// lldbr-check:(i64) explicitly = 1 // lldb-command:continue // lldb-command:print arg -// lldb-check:[...]$3 = 2 +// lldbg-check:[...]$3 = 2 +// lldbr-check:(i64) arg = 2 // lldb-command:continue // lldb-command:print arg -// lldb-check:[...]$4 = (4, 5) +// lldbg-check:[...]$4 = (4, 5) +// lldbr-check:((i32, i64)) arg = { = 4 = 5 } // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$5 = 6 +// lldbg-check:[...]$5 = 6 +// lldbr-check:(i32) a = 6 // lldb-command:print b -// lldb-check:[...]$6 = 7 +// lldbg-check:[...]$6 = 7 +// lldbr-check:(i64) b = 7 // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$7 = 8 +// lldbg-check:[...]$7 = 8 +// lldbr-check:(i64) a = 8 // lldb-command:print b -// lldb-check:[...]$8 = 9 +// lldbg-check:[...]$8 = 9 +// lldbr-check:(i32) b = 9 // lldb-command:continue #![allow(unused_variables)] diff --git a/src/test/debuginfo/basic-types.rs b/src/test/debuginfo/basic-types.rs index 01ce5bd31626e..75737cd6f135e 100644 --- a/src/test/debuginfo/basic-types.rs +++ b/src/test/debuginfo/basic-types.rs @@ -56,36 +56,49 @@ // lldb-command:run // lldb-command:print b -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) b = false // lldb-command:print i -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) i = -1 -// NOTE: LLDB does not support 32bit chars -// d ebugger:print (usize)(c) -// c heck:$3 = 97 +// NOTE: only rust-enabled lldb supports 32bit chars +// lldbr-command:print c +// lldbr-check:(char) c = 'a' // lldb-command:print i8 -// lldb-check:[...]$2 = 'D' +// lldbg-check:[...]$2 = 'D' +// lldbr-check:(i8) i8 = 68 // lldb-command:print i16 -// lldb-check:[...]$3 = -16 +// lldbg-check:[...]$3 = -16 +// lldbr-check:(i16) i16 = -16 // lldb-command:print i32 -// lldb-check:[...]$4 = -32 +// lldbg-check:[...]$4 = -32 +// lldbr-check:(i32) i32 = -32 // lldb-command:print i64 -// lldb-check:[...]$5 = -64 +// lldbg-check:[...]$5 = -64 +// lldbr-check:(i64) i64 = -64 // lldb-command:print u -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(usize) u = 1 // lldb-command:print u8 -// lldb-check:[...]$7 = 'd' +// lldbg-check:[...]$7 = 'd' +// lldbr-check:(u8) u8 = 100 // lldb-command:print u16 -// lldb-check:[...]$8 = 16 +// lldbg-check:[...]$8 = 16 +// lldbr-check:(u16) u16 = 16 // lldb-command:print u32 -// lldb-check:[...]$9 = 32 +// lldbg-check:[...]$9 = 32 +// lldbr-check:(u32) u32 = 32 // lldb-command:print u64 -// lldb-check:[...]$10 = 64 +// lldbg-check:[...]$10 = 64 +// lldbr-check:(u64) u64 = 64 // lldb-command:print f32 -// lldb-check:[...]$11 = 2.5 +// lldbg-check:[...]$11 = 2.5 +// lldbr-check:(f32) f32 = 2.5 // lldb-command:print f64 -// lldb-check:[...]$12 = 3.5 +// lldbg-check:[...]$12 = 3.5 +// lldbr-check:(f64) f64 = 3.5 #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/borrowed-basic.rs b/src/test/debuginfo/borrowed-basic.rs index f6c0ff09efe93..6f618c3881f96 100644 --- a/src/test/debuginfo/borrowed-basic.rs +++ b/src/test/debuginfo/borrowed-basic.rs @@ -68,47 +68,60 @@ // lldb-command:run // lldb-command:print *bool_ref -// lldb-check:[...]$0 = true +// lldbg-check:[...]$0 = true +// lldbr-check:(bool) *bool_ref = true // lldb-command:print *int_ref -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) *int_ref = -1 -// NOTE: lldb doesn't support 32bit chars at the moment -// d ebugger:print *char_ref -// c heck:[...]$x = 97 +// NOTE: only rust-enabled lldb supports 32bit chars +// lldbr-command:print *char_ref +// lldbr-check:(char) *char_ref = 'a' // lldb-command:print *i8_ref -// lldb-check:[...]$2 = 'D' +// lldbg-check:[...]$2 = 'D' +// lldbr-check:(i8) *i8_ref = 68 // lldb-command:print *i16_ref -// lldb-check:[...]$3 = -16 +// lldbg-check:[...]$3 = -16 +// lldbr-check:(i16) *i16_ref = -16 // lldb-command:print *i32_ref -// lldb-check:[...]$4 = -32 +// lldbg-check:[...]$4 = -32 +// lldbr-check:(i32) *i32_ref = -32 // lldb-command:print *i64_ref -// lldb-check:[...]$5 = -64 +// lldbg-check:[...]$5 = -64 +// lldbr-check:(i64) *i64_ref = -64 // lldb-command:print *uint_ref -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(usize) *uint_ref = 1 // lldb-command:print *u8_ref -// lldb-check:[...]$7 = 'd' +// lldbg-check:[...]$7 = 'd' +// lldbr-check:(u8) *u8_ref = 100 // lldb-command:print *u16_ref -// lldb-check:[...]$8 = 16 +// lldbg-check:[...]$8 = 16 +// lldbr-check:(u16) *u16_ref = 16 // lldb-command:print *u32_ref -// lldb-check:[...]$9 = 32 +// lldbg-check:[...]$9 = 32 +// lldbr-check:(u32) *u32_ref = 32 // lldb-command:print *u64_ref -// lldb-check:[...]$10 = 64 +// lldbg-check:[...]$10 = 64 +// lldbr-check:(u64) *u64_ref = 64 // lldb-command:print *f32_ref -// lldb-check:[...]$11 = 2.5 +// lldbg-check:[...]$11 = 2.5 +// lldbr-check:(f32) *f32_ref = 2.5 // lldb-command:print *f64_ref -// lldb-check:[...]$12 = 3.5 +// lldbg-check:[...]$12 = 3.5 +// lldbr-check:(f64) *f64_ref = 3.5 #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/borrowed-c-style-enum.rs b/src/test/debuginfo/borrowed-c-style-enum.rs index d6f379634be5b..73b92b82ba0a6 100644 --- a/src/test/debuginfo/borrowed-c-style-enum.rs +++ b/src/test/debuginfo/borrowed-c-style-enum.rs @@ -34,13 +34,16 @@ // lldb-command:run // lldb-command:print *the_a_ref -// lldb-check:[...]$0 = TheA +// lldbg-check:[...]$0 = TheA +// lldbr-check:(borrowed_c_style_enum::ABC) *the_a_ref = borrowed_c_style_enum::ABC::TheA // lldb-command:print *the_b_ref -// lldb-check:[...]$1 = TheB +// lldbg-check:[...]$1 = TheB +// lldbr-check:(borrowed_c_style_enum::ABC) *the_b_ref = borrowed_c_style_enum::ABC::TheB // lldb-command:print *the_c_ref -// lldb-check:[...]$2 = TheC +// lldbg-check:[...]$2 = TheC +// lldbr-check:(borrowed_c_style_enum::ABC) *the_c_ref = borrowed_c_style_enum::ABC::TheC #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/borrowed-enum.rs b/src/test/debuginfo/borrowed-enum.rs index 9e63beff3cb2e..9143e83343fb8 100644 --- a/src/test/debuginfo/borrowed-enum.rs +++ b/src/test/debuginfo/borrowed-enum.rs @@ -36,11 +36,14 @@ // lldb-command:run // lldb-command:print *the_a_ref -// lldb-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 } +// lldbg-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 } +// lldbr-check:(borrowed_enum::ABC::TheA) *the_a_ref = TheA { borrowed_enum::ABC::TheA: 0, borrowed_enum::ABC::TheB: 8970181431921507452 } // lldb-command:print *the_b_ref -// lldb-check:[...]$1 = TheB(0, 286331153, 286331153) +// lldbg-check:[...]$1 = TheB(0, 286331153, 286331153) +// lldbr-check:(borrowed_enum::ABC::TheB) *the_b_ref = { = 0 = 286331153 = 286331153 } // lldb-command:print *univariant_ref -// lldb-check:[...]$2 = TheOnlyCase(4820353753753434) +// lldbg-check:[...]$2 = TheOnlyCase(4820353753753434) +// lldbr-check:(borrowed_enum::Univariant) *univariant_ref = { borrowed_enum::TheOnlyCase = { = 4820353753753434 } } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/borrowed-struct.rs b/src/test/debuginfo/borrowed-struct.rs index 01428e515e27f..3efb4dd470e65 100644 --- a/src/test/debuginfo/borrowed-struct.rs +++ b/src/test/debuginfo/borrowed-struct.rs @@ -45,25 +45,32 @@ // lldb-command:run // lldb-command:print *stack_val_ref -// lldb-check:[...]$0 = SomeStruct { x: 10, y: 23.5 } +// lldbg-check:[...]$0 = SomeStruct { x: 10, y: 23.5 } +// lldbr-check:(borrowed_struct::SomeStruct) *stack_val_ref = SomeStruct { x: 10, y: 23.5 } // lldb-command:print *stack_val_interior_ref_1 -// lldb-check:[...]$1 = 10 +// lldbg-check:[...]$1 = 10 +// lldbr-check:(isize) *stack_val_interior_ref_1 = 10 // lldb-command:print *stack_val_interior_ref_2 -// lldb-check:[...]$2 = 23.5 +// lldbg-check:[...]$2 = 23.5 +// lldbr-check:(f64) *stack_val_interior_ref_2 = 23.5 // lldb-command:print *ref_to_unnamed -// lldb-check:[...]$3 = SomeStruct { x: 11, y: 24.5 } +// lldbg-check:[...]$3 = SomeStruct { x: 11, y: 24.5 } +// lldbr-check:(borrowed_struct::SomeStruct) *ref_to_unnamed = SomeStruct { x: 11, y: 24.5 } // lldb-command:print *unique_val_ref -// lldb-check:[...]$4 = SomeStruct { x: 13, y: 26.5 } +// lldbg-check:[...]$4 = SomeStruct { x: 13, y: 26.5 } +// lldbr-check:(borrowed_struct::SomeStruct) *unique_val_ref = SomeStruct { x: 13, y: 26.5 } // lldb-command:print *unique_val_interior_ref_1 -// lldb-check:[...]$5 = 13 +// lldbg-check:[...]$5 = 13 +// lldbr-check:(isize) *unique_val_interior_ref_1 = 13 // lldb-command:print *unique_val_interior_ref_2 -// lldb-check:[...]$6 = 26.5 +// lldbg-check:[...]$6 = 26.5 +// lldbr-check:(f64) *unique_val_interior_ref_2 = 26.5 #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/borrowed-tuple.rs b/src/test/debuginfo/borrowed-tuple.rs index 17db88ee37f53..ec7c000350f53 100644 --- a/src/test/debuginfo/borrowed-tuple.rs +++ b/src/test/debuginfo/borrowed-tuple.rs @@ -34,13 +34,16 @@ // lldb-command:run // lldb-command:print *stack_val_ref -// lldb-check:[...]$0 = (-14, -19) +// lldbg-check:[...]$0 = (-14, -19) +// lldbr-check:((i16, f32)) *stack_val_ref = { = -14 = -19 } // lldb-command:print *ref_to_unnamed -// lldb-check:[...]$1 = (-15, -20) +// lldbg-check:[...]$1 = (-15, -20) +// lldbr-check:((i16, f32)) *ref_to_unnamed = { = -15 = -20 } // lldb-command:print *unique_val_ref -// lldb-check:[...]$2 = (-17, -22) +// lldbg-check:[...]$2 = (-17, -22) +// lldbr-check:((i16, f32)) *unique_val_ref = { = -17 = -22 } #![allow(unused_variables)] diff --git a/src/test/debuginfo/borrowed-unique-basic.rs b/src/test/debuginfo/borrowed-unique-basic.rs index 9e95498b0c30e..78effa5f3dffe 100644 --- a/src/test/debuginfo/borrowed-unique-basic.rs +++ b/src/test/debuginfo/borrowed-unique-basic.rs @@ -70,46 +70,60 @@ // lldb-command:run // lldb-command:print *bool_ref -// lldb-check:[...]$0 = true +// lldbg-check:[...]$0 = true +// lldbr-check:(bool) *bool_ref = true // lldb-command:print *int_ref -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) *int_ref = -1 -// d ebugger:print *char_ref -// c heck:[...]$3 = 97 +// NOTE: only rust-enabled lldb supports 32bit chars +// lldbr-command:print *char_ref +// lldbr-check:(char) *char_ref = 97 // lldb-command:print *i8_ref -// lldb-check:[...]$2 = 68 +// lldbg-check:[...]$2 = 68 +// lldbr-check:(i8) *i8_ref = 68 // lldb-command:print *i16_ref -// lldb-check:[...]$3 = -16 +// lldbg-check:[...]$3 = -16 +// lldbr-check:(i16) *i16_ref = -16 // lldb-command:print *i32_ref -// lldb-check:[...]$4 = -32 +// lldbg-check:[...]$4 = -32 +// lldbr-check:(i32) *i32_ref = -32 // lldb-command:print *i64_ref -// lldb-check:[...]$5 = -64 +// lldbg-check:[...]$5 = -64 +// lldbr-check:(i64) *i64_ref = -64 // lldb-command:print *uint_ref -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(usize) *uint_ref = 1 // lldb-command:print *u8_ref -// lldb-check:[...]$7 = 100 +// lldbg-check:[...]$7 = 100 +// lldbr-check:(u8) *u8_ref = 100 // lldb-command:print *u16_ref -// lldb-check:[...]$8 = 16 +// lldbg-check:[...]$8 = 16 +// lldbr-check:(u16) *u16_ref = 16 // lldb-command:print *u32_ref -// lldb-check:[...]$9 = 32 +// lldbg-check:[...]$9 = 32 +// lldbr-check:(u32) *u32_ref = 32 // lldb-command:print *u64_ref -// lldb-check:[...]$10 = 64 +// lldbg-check:[...]$10 = 64 +// lldbr-check:(u64) *u64_ref = 64 // lldb-command:print *f32_ref -// lldb-check:[...]$11 = 2.5 +// lldbg-check:[...]$11 = 2.5 +// lldbr-check:(f32) *f32_ref = 2.5 // lldb-command:print *f64_ref -// lldb-check:[...]$12 = 3.5 +// lldbg-check:[...]$12 = 3.5 +// lldbr-check:(f64) *f64_ref = 3.5 #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/box.rs b/src/test/debuginfo/box.rs index 98c09fe09de8f..7e25a9bf76a86 100644 --- a/src/test/debuginfo/box.rs +++ b/src/test/debuginfo/box.rs @@ -27,9 +27,11 @@ // lldb-command:run // lldb-command:print *a -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(i32) *a = 1 // lldb-command:print *b -// lldb-check:[...]$1 = (2, 3.5) +// lldbg-check:[...]$1 = (2, 3.5) +// lldbr-check:((i32, f64)) *b = { = 2 = 3.5 } #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/boxed-struct.rs b/src/test/debuginfo/boxed-struct.rs index ac091b4a533db..130ea3822cb3a 100644 --- a/src/test/debuginfo/boxed-struct.rs +++ b/src/test/debuginfo/boxed-struct.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // min-lldb-version: 310 // compile-flags:-g @@ -30,10 +32,12 @@ // lldb-command:run // lldb-command:print *unique -// lldb-check:[...]$0 = StructWithSomePadding { x: 99, y: 999, z: 9999, w: 99999 } +// lldbg-check:[...]$0 = StructWithSomePadding { x: 99, y: 999, z: 9999, w: 99999 } +// lldbr-check:(boxed_struct::StructWithSomePadding) *unique = StructWithSomePadding { x: 99, y: 999, z: 9999, w: 99999 } // lldb-command:print *unique_dtor -// lldb-check:[...]$1 = StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 } +// lldbg-check:[...]$1 = StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 } +// lldbr-check:(boxed_struct::StructWithDestructor) *unique_dtor = StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 } #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs b/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs index c14f8c7b354fc..c0fb2dbdda274 100644 --- a/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs +++ b/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs @@ -36,15 +36,18 @@ // lldb-command:run // lldb-command:print self -// lldb-check:[...]$0 = 1111 +// lldbg-check:[...]$0 = 1111 +// lldbr-check:(isize) self = 1111 // lldb-command:continue // lldb-command:print self -// lldb-check:[...]$1 = Struct { x: 2222, y: 3333 } +// lldbg-check:[...]$1 = Struct { x: 2222, y: 3333 } +// lldbr-check:(by_value_self_argument_in_trait_impl::Struct) self = Struct { x: 2222, y: 3333 } // lldb-command:continue // lldb-command:print self -// lldb-check:[...]$2 = (4444.5, 5555, 6666, 7777.5) +// lldbg-check:[...]$2 = (4444.5, 5555, 6666, 7777.5) +// lldbr-check:((f64, isize, isize, f64)) self = { = 4444.5 = 5555 = 6666 = 7777.5 } // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/c-style-enum-in-composite.rs b/src/test/debuginfo/c-style-enum-in-composite.rs index 004e15d1cc6c1..d93e35532e47a 100644 --- a/src/test/debuginfo/c-style-enum-in-composite.rs +++ b/src/test/debuginfo/c-style-enum-in-composite.rs @@ -50,24 +50,30 @@ // lldb-command:run // lldb-command:print tuple_interior_padding -// lldb-check:[...]$0 = (0, OneHundred) +// lldbg-check:[...]$0 = (0, OneHundred) +// lldbr-check:((i16, c_style_enum_in_composite::AnEnum)) tuple_interior_padding = { = 0 = c_style_enum_in_composite::AnEnum::OneHundred } // lldb-command:print tuple_padding_at_end -// lldb-check:[...]$1 = ((1, OneThousand), 2) +// lldbg-check:[...]$1 = ((1, OneThousand), 2) +// lldbr-check:(((u64, c_style_enum_in_composite::AnEnum), u64)) tuple_padding_at_end = { = { = 1 = c_style_enum_in_composite::AnEnum::OneThousand } = 2 } // lldb-command:print tuple_different_enums -// lldb-check:[...]$2 = (OneThousand, MountainView, OneMillion, Vienna) +// lldbg-check:[...]$2 = (OneThousand, MountainView, OneMillion, Vienna) +// lldbr-check:((c_style_enum_in_composite::AnEnum, c_style_enum_in_composite::AnotherEnum, c_style_enum_in_composite::AnEnum, c_style_enum_in_composite::AnotherEnum)) tuple_different_enums = { = c_style_enum_in_composite::AnEnum::OneThousand = c_style_enum_in_composite::AnotherEnum::MountainView = c_style_enum_in_composite::AnEnum::OneMillion = c_style_enum_in_composite::AnotherEnum::Vienna } // lldb-command:print padded_struct -// lldb-check:[...]$3 = PaddedStruct { a: 3, b: OneMillion, c: 4, d: Toronto, e: 5 } +// lldbg-check:[...]$3 = PaddedStruct { a: 3, b: OneMillion, c: 4, d: Toronto, e: 5 } +// lldbr-check:(c_style_enum_in_composite::PaddedStruct) padded_struct = PaddedStruct { a: 3, b: c_style_enum_in_composite::AnEnum::OneMillion, c: 4, d: c_style_enum_in_composite::AnotherEnum::Toronto, e: 5 } // lldb-command:print packed_struct -// lldb-check:[...]$4 = PackedStruct { a: 6, b: OneHundred, c: 7, d: Vienna, e: 8 } +// lldbg-check:[...]$4 = PackedStruct { a: 6, b: OneHundred, c: 7, d: Vienna, e: 8 } +// lldbr-check:(c_style_enum_in_composite::PackedStruct) packed_struct = PackedStruct { a: 6, b: c_style_enum_in_composite::AnEnum::OneHundred, c: 7, d: c_style_enum_in_composite::AnotherEnum::Vienna, e: 8 } // lldb-command:print non_padded_struct -// lldb-check:[...]$5 = NonPaddedStruct { a: OneMillion, b: MountainView, c: OneThousand, d: Toronto } +// lldbg-check:[...]$5 = NonPaddedStruct { a: OneMillion, b: MountainView, c: OneThousand, d: Toronto// lldbr-check:(c_style_enum_in_composite::NonPaddedStruct) non_padded_struct = NonPaddedStruct { a: c_style_enum_in_composite::AnEnum::OneMillion, b: c_style_enum_in_composite::AnotherEnum::MountainView, c: c_style_enum_in_composite::AnEnum::OneThousand, d: c_style_enum_in_composite::AnotherEnum::Toronto } -// lldb-command:print struct_with_drop -// lldb-check:[...]$6 = (StructWithDrop { a: OneHundred, b: Vienna }, 9) +// lldbr-command:print struct_with_drop +// lldbg-check:[...]$6 = (StructWithDrop { a: OneHundred, b: Vienna }, 9) +// lldbr-check:((c_style_enum_in_composite::StructWithDrop, i64)) struct_with_drop = { = StructWithDrop { a: c_style_enum_in_composite::AnEnum::OneHundred, b: c_style_enum_in_composite::AnotherEnum::Vienna } = 9 } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/c-style-enum.rs b/src/test/debuginfo/c-style-enum.rs index 2dbac8e3d9eac..a756d4fdf6ce7 100644 --- a/src/test/debuginfo/c-style-enum.rs +++ b/src/test/debuginfo/c-style-enum.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // ignore-aarch64 // ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155 // min-lldb-version: 310 @@ -107,25 +109,32 @@ // lldb-command:run // lldb-command:print auto_one -// lldb-check:[...]$0 = One +// lldbg-check:[...]$0 = One +// lldbr-check:(c_style_enum::AutoDiscriminant) auto_one = c_style_enum::AutoDiscriminant::One // lldb-command:print auto_two -// lldb-check:[...]$1 = Two +// lldbg-check:[...]$1 = Two +// lldbr-check:(c_style_enum::AutoDiscriminant) auto_two = c_style_enum::AutoDiscriminant::Two // lldb-command:print auto_three -// lldb-check:[...]$2 = Three +// lldbg-check:[...]$2 = Three +// lldbr-check:(c_style_enum::AutoDiscriminant) auto_three = c_style_enum::AutoDiscriminant::Three // lldb-command:print manual_one_hundred -// lldb-check:[...]$3 = OneHundred +// lldbg-check:[...]$3 = OneHundred +// lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_hundred = c_style_enum::ManualDiscriminant::OneHundred // lldb-command:print manual_one_thousand -// lldb-check:[...]$4 = OneThousand +// lldbg-check:[...]$4 = OneThousand +// lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_thousand = c_style_enum::ManualDiscriminant::OneThousand // lldb-command:print manual_one_million -// lldb-check:[...]$5 = OneMillion +// lldbg-check:[...]$5 = OneMillion +// lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_million = c_style_enum::ManualDiscriminant::OneMillion // lldb-command:print single_variant -// lldb-check:[...]$6 = TheOnlyVariant +// lldbg-check:[...]$6 = TheOnlyVariant +// lldbr-check:(c_style_enum::SingleVariant) single_variant = c_style_enum::SingleVariant::TheOnlyVariant #![allow(unused_variables)] #![allow(dead_code)] diff --git a/src/test/debuginfo/closure-in-generic-function.rs b/src/test/debuginfo/closure-in-generic-function.rs index 5335e0bfa4a69..bb61b394a9c7b 100644 --- a/src/test/debuginfo/closure-in-generic-function.rs +++ b/src/test/debuginfo/closure-in-generic-function.rs @@ -34,15 +34,19 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = 0.5 +// lldbg-check:[...]$0 = 0.5 +// lldbr-check:(f64) x = 0.5 // lldb-command:print y -// lldb-check:[...]$1 = 10 +// lldbg-check:[...]$1 = 10 +// lldbr-check:(i32) y = 10 // lldb-command:continue // lldb-command:print *x -// lldb-check:[...]$2 = 29 +// lldbg-check:[...]$2 = 29 +// lldbr-check:(i32) *x = 29 // lldb-command:print *y -// lldb-check:[...]$3 = 110 +// lldbg-check:[...]$3 = 110 +// lldbr-check:(i32) *y = 110 // lldb-command:continue #![feature(box_syntax)] diff --git a/src/test/debuginfo/cross-crate-spans.rs b/src/test/debuginfo/cross-crate-spans.rs index 28728df928051..9002e19ce21ba 100644 --- a/src/test/debuginfo/cross-crate-spans.rs +++ b/src/test/debuginfo/cross-crate-spans.rs @@ -50,19 +50,25 @@ extern crate cross_crate_spans; // lldb-command:run // lldb-command:print result -// lldb-check:[...]$0 = (17, 17) +// lldbg-check:[...]$0 = (17, 17) +// lldbr-check:((u32, u32)) result = { = 17 = 17 } // lldb-command:print a_variable -// lldb-check:[...]$1 = 123456789 +// lldbg-check:[...]$1 = 123456789 +// lldbr-check:(u32) a_variable = 123456789 // lldb-command:print another_variable -// lldb-check:[...]$2 = 123456789.5 +// lldbg-check:[...]$2 = 123456789.5 +// lldbr-check:(f64) another_variable = 123456789.5 // lldb-command:continue // lldb-command:print result -// lldb-check:[...]$3 = (1212, 1212) +// lldbg-check:[...]$3 = (1212, 1212) +// lldbr-check:((i16, i16)) result = { = 1212 = 1212 } // lldb-command:print a_variable -// lldb-check:[...]$4 = 123456789 +// lldbg-check:[...]$4 = 123456789 +// lldbr-check:(u32) a_variable = 123456789 // lldb-command:print another_variable -// lldb-check:[...]$5 = 123456789.5 +// lldbg-check:[...]$5 = 123456789.5 +// lldbr-check:(f64) another_variable = 123456789.5 // lldb-command:continue diff --git a/src/test/debuginfo/destructured-fn-argument.rs b/src/test/debuginfo/destructured-fn-argument.rs index efa9ee59b22b2..b152fa27906f1 100644 --- a/src/test/debuginfo/destructured-fn-argument.rs +++ b/src/test/debuginfo/destructured-fn-argument.rs @@ -174,147 +174,196 @@ // lldb-command:run // lldb-command:print a -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) a = 1 // lldb-command:print b -// lldb-check:[...]$1 = false +// lldbg-check:[...]$1 = false +// lldbr-check:(bool) b = false // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$2 = 2 +// lldbg-check:[...]$2 = 2 +// lldbr-check:(isize) a = 2 // lldb-command:print b -// lldb-check:[...]$3 = 3 +// lldbg-check:[...]$3 = 3 +// lldbr-check:(u16) b = 3 // lldb-command:print c -// lldb-check:[...]$4 = 4 +// lldbg-check:[...]$4 = 4 +// lldbr-check:(u16) c = 4 // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$5 = 5 +// lldbg-check:[...]$5 = 5 +// lldbr-check:(isize) a = 5 // lldb-command:print b -// lldb-check:[...]$6 = (6, 7) +// lldbg-check:[...]$6 = (6, 7) +// lldbr-check:((u32, u32)) b = { = 6 = 7 } // lldb-command:continue // lldb-command:print h -// lldb-check:[...]$7 = 8 +// lldbg-check:[...]$7 = 8 +// lldbr-check:(i16) h = 8 // lldb-command:print i -// lldb-check:[...]$8 = Struct { a: 9, b: 10 } +// lldbg-check:[...]$8 = Struct { a: 9, b: 10 } +// lldbr-check:(destructured_fn_argument::Struct) i = Struct { a: 9, b: 10 } // lldb-command:print j -// lldb-check:[...]$9 = 11 +// lldbg-check:[...]$9 = 11 +// lldbr-check:(i16) j = 11 // lldb-command:continue // lldb-command:print k -// lldb-check:[...]$10 = 12 +// lldbg-check:[...]$10 = 12 +// lldbr-check:(i64) k = 12 // lldb-command:print l -// lldb-check:[...]$11 = 13 +// lldbg-check:[...]$11 = 13 +// lldbr-check:(i32) l = 13 // lldb-command:continue // lldb-command:print m -// lldb-check:[...]$12 = 14 +// lldbg-check:[...]$12 = 14 +// lldbr-check:(isize) m = 14 // lldb-command:print n -// lldb-check:[...]$13 = 16 +// lldbg-check:[...]$13 = 16 +// lldbr-check:(i32) n = 16 // lldb-command:continue // lldb-command:print o -// lldb-check:[...]$14 = 18 +// lldbg-check:[...]$14 = 18 +// lldbr-check:(i32) o = 18 // lldb-command:continue // lldb-command:print p -// lldb-check:[...]$15 = 19 +// lldbg-check:[...]$15 = 19 +// lldbr-check:(i64) p = 19 // lldb-command:print q -// lldb-check:[...]$16 = 20 +// lldbg-check:[...]$16 = 20 +// lldbr-check:(i32) q = 20 // lldb-command:print r -// lldb-check:[...]$17 = Struct { a: 21, b: 22 } +// lldbg-check:[...]$17 = Struct { a: 21, b: 22 } +// lldbr-check:(destructured_fn_argument::Struct) r = Struct { a: 21, b: 22 } // lldb-command:continue // lldb-command:print s -// lldb-check:[...]$18 = 24 +// lldbg-check:[...]$18 = 24 +// lldbr-check:(i32) s = 24 // lldb-command:print t -// lldb-check:[...]$19 = 23 +// lldbg-check:[...]$19 = 23 +// lldbr-check:(i64) t = 23 // lldb-command:continue // lldb-command:print u -// lldb-check:[...]$20 = 25 +// lldbg-check:[...]$20 = 25 +// lldbr-check:(i16) u = 25 // lldb-command:print v -// lldb-check:[...]$21 = 26 +// lldbg-check:[...]$21 = 26 +// lldbr-check:(i32) v = 26 // lldb-command:print w -// lldb-check:[...]$22 = 27 +// lldbg-check:[...]$22 = 27 +// lldbr-check:(i64) w = 27 // lldb-command:print x -// lldb-check:[...]$23 = 28 +// lldbg-check:[...]$23 = 28 +// lldbr-check:(i32) x = 28 // lldb-command:print y -// lldb-check:[...]$24 = 29 +// lldbg-check:[...]$24 = 29 +// lldbr-check:(i64) y = 29 // lldb-command:print z -// lldb-check:[...]$25 = 30 +// lldbg-check:[...]$25 = 30 +// lldbr-check:(i32) z = 30 // lldb-command:print ae -// lldb-check:[...]$26 = 31 +// lldbg-check:[...]$26 = 31 +// lldbr-check:(i64) ae = 31 // lldb-command:print oe -// lldb-check:[...]$27 = 32 +// lldbg-check:[...]$27 = 32 +// lldbr-check:(i32) oe = 32 // lldb-command:print ue -// lldb-check:[...]$28 = 33 +// lldbg-check:[...]$28 = 33 +// lldbr-check:(u16) ue = 33 // lldb-command:continue // lldb-command:print aa -// lldb-check:[...]$29 = (34, 35) +// lldbg-check:[...]$29 = (34, 35) +// lldbr-check:((isize, isize)) aa = { = 34 = 35 } // lldb-command:continue // lldb-command:print bb -// lldb-check:[...]$30 = (36, 37) +// lldbg-check:[...]$30 = (36, 37) +// lldbr-check:((isize, isize)) bb = { = 36 = 37 } // lldb-command:continue // lldb-command:print cc -// lldb-check:[...]$31 = 38 +// lldbg-check:[...]$31 = 38 +// lldbr-check:(isize) cc = 38 // lldb-command:continue // lldb-command:print dd -// lldb-check:[...]$32 = (40, 41, 42) +// lldbg-check:[...]$32 = (40, 41, 42) +// lldbr-check:((isize, isize, isize)) dd = { = 40 = 41 = 42 } // lldb-command:continue // lldb-command:print *ee -// lldb-check:[...]$33 = (43, 44, 45) +// lldbg-check:[...]$33 = (43, 44, 45) +// lldbr-check:((isize, isize, isize)) *ee = { = 43 = 44 = 45 } // lldb-command:continue // lldb-command:print *ff -// lldb-check:[...]$34 = 46 +// lldbg-check:[...]$34 = 46 +// lldbr-check:(isize) *ff = 46 // lldb-command:print gg -// lldb-check:[...]$35 = (47, 48) +// lldbg-check:[...]$35 = (47, 48) +// lldbr-check:((isize, isize)) gg = { = 47 = 48 } // lldb-command:continue // lldb-command:print *hh -// lldb-check:[...]$36 = 50 +// lldbg-check:[...]$36 = 50 +// lldbr-check:(i32) *hh = 50 // lldb-command:continue // lldb-command:print ii -// lldb-check:[...]$37 = 51 +// lldbg-check:[...]$37 = 51 +// lldbr-check:(i32) ii = 51 // lldb-command:continue // lldb-command:print *jj -// lldb-check:[...]$38 = 52 +// lldbg-check:[...]$38 = 52 +// lldbr-check:(i32) *jj = 52 // lldb-command:continue // lldb-command:print kk -// lldb-check:[...]$39 = 53 +// lldbg-check:[...]$39 = 53 +// lldbr-check:(f64) kk = 53 // lldb-command:print ll -// lldb-check:[...]$40 = 54 +// lldbg-check:[...]$40 = 54 +// lldbr-check:(isize) ll = 54 // lldb-command:continue // lldb-command:print mm -// lldb-check:[...]$41 = 55 +// lldbg-check:[...]$41 = 55 +// lldbr-check:(f64) mm = 55 // lldb-command:print *nn -// lldb-check:[...]$42 = 56 +// lldbg-check:[...]$42 = 56 +// lldbr-check:(isize) *nn = 56 // lldb-command:continue // lldb-command:print oo -// lldb-check:[...]$43 = 57 +// lldbg-check:[...]$43 = 57 +// lldbr-check:(isize) oo = 57 // lldb-command:print pp -// lldb-check:[...]$44 = 58 +// lldbg-check:[...]$44 = 58 +// lldbr-check:(isize) pp = 58 // lldb-command:print qq -// lldb-check:[...]$45 = 59 +// lldbg-check:[...]$45 = 59 +// lldbr-check:(isize) qq = 59 // lldb-command:continue // lldb-command:print rr -// lldb-check:[...]$46 = 60 +// lldbg-check:[...]$46 = 60 +// lldbr-check:(isize) rr = 60 // lldb-command:print ss -// lldb-check:[...]$47 = 61 +// lldbg-check:[...]$47 = 61 +// lldbr-check:(isize) ss = 61 // lldb-command:print tt -// lldb-check:[...]$48 = 62 +// lldbg-check:[...]$48 = 62 +// lldbr-check:(isize) tt = 62 // lldb-command:continue #![allow(unused_variables)] diff --git a/src/test/debuginfo/destructured-for-loop-variable.rs b/src/test/debuginfo/destructured-for-loop-variable.rs index e973c22fd4a85..48231a906c902 100644 --- a/src/test/debuginfo/destructured-for-loop-variable.rs +++ b/src/test/debuginfo/destructured-for-loop-variable.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // min-lldb-version: 310 // compile-flags:-g @@ -91,66 +93,90 @@ // DESTRUCTURED STRUCT // lldb-command:print x -// lldb-check:[...]$0 = 400 +// lldbg-check:[...]$0 = 400 +// lldbr-check:(i16) x = 400 // lldb-command:print y -// lldb-check:[...]$1 = 401.5 +// lldbg-check:[...]$1 = 401.5 +// lldbr-check:(f32) y = 401.5 // lldb-command:print z -// lldb-check:[...]$2 = true +// lldbg-check:[...]$2 = true +// lldbr-check:(bool) z = true // lldb-command:continue // DESTRUCTURED TUPLE // lldb-command:print _i8 -// lldb-check:[...]$3 = 0x6f +// lldbg-check:[...]$3 = 0x6f +// lldbr-check:(i8) _i8 = 111 // lldb-command:print _u8 -// lldb-check:[...]$4 = 0x70 +// lldbg-check:[...]$4 = 0x70 +// lldbr-check:(u8) _u8 = 112 // lldb-command:print _i16 -// lldb-check:[...]$5 = -113 +// lldbg-check:[...]$5 = -113 +// lldbr-check:(i16) _i16 = -113 // lldb-command:print _u16 -// lldb-check:[...]$6 = 114 +// lldbg-check:[...]$6 = 114 +// lldbr-check:(u16) _u16 = 114 // lldb-command:print _i32 -// lldb-check:[...]$7 = -115 +// lldbg-check:[...]$7 = -115 +// lldbr-check:(i32) _i32 = -115 // lldb-command:print _u32 -// lldb-check:[...]$8 = 116 +// lldbg-check:[...]$8 = 116 +// lldbr-check:(u32) _u32 = 116 // lldb-command:print _i64 -// lldb-check:[...]$9 = -117 +// lldbg-check:[...]$9 = -117 +// lldbr-check:(i64) _i64 = -117 // lldb-command:print _u64 -// lldb-check:[...]$10 = 118 +// lldbg-check:[...]$10 = 118 +// lldbr-check:(u64) _u64 = 118 // lldb-command:print _f32 -// lldb-check:[...]$11 = 119.5 +// lldbg-check:[...]$11 = 119.5 +// lldbr-check:(f32) _f32 = 119.5 // lldb-command:print _f64 -// lldb-check:[...]$12 = 120.5 +// lldbg-check:[...]$12 = 120.5 +// lldbr-check:(f64) _f64 = 120.5 // lldb-command:continue // MORE COMPLEX CASE // lldb-command:print v1 -// lldb-check:[...]$13 = 80000 +// lldbg-check:[...]$13 = 80000 +// lldbr-check:(i32) v1 = 80000 // lldb-command:print x1 -// lldb-check:[...]$14 = 8000 +// lldbg-check:[...]$14 = 8000 +// lldbr-check:(i16) x1 = 8000 // lldb-command:print *y1 -// lldb-check:[...]$15 = 80001.5 +// lldbg-check:[...]$15 = 80001.5 +// lldbr-check:(f32) *y1 = 80001.5 // lldb-command:print z1 -// lldb-check:[...]$16 = false +// lldbg-check:[...]$16 = false +// lldbr-check:(bool) z1 = false // lldb-command:print *x2 -// lldb-check:[...]$17 = -30000 +// lldbg-check:[...]$17 = -30000 +// lldbr-check:(i16) *x2 = -30000 // lldb-command:print y2 -// lldb-check:[...]$18 = -300001.5 +// lldbg-check:[...]$18 = -300001.5 +// lldbr-check:(f32) y2 = -300001.5 // lldb-command:print *z2 -// lldb-check:[...]$19 = true +// lldbg-check:[...]$19 = true +// lldbr-check:(bool) *z2 = true // lldb-command:print v2 -// lldb-check:[...]$20 = 854237.5 +// lldbg-check:[...]$20 = 854237.5 +// lldbr-check:(f64) v2 = 854237.5 // lldb-command:continue // SIMPLE IDENTIFIER // lldb-command:print i -// lldb-check:[...]$21 = 1234 +// lldbg-check:[...]$21 = 1234 +// lldbr-check:(i32) i = 1234 // lldb-command:continue // lldb-command:print simple_struct_ident -// lldb-check:[...]$22 = Struct { x: 3537, y: 35437.5, z: true } +// lldbg-check:[...]$22 = Struct { x: 3537, y: 35437.5, z: true } +// lldbr-check:(destructured_for_loop_variable::Struct) simple_struct_ident = Struct { x: 3537, y: 35437.5, z: true } // lldb-command:continue // lldb-command:print simple_tuple_ident -// lldb-check:[...]$23 = (34903493, 232323) +// lldbg-check:[...]$23 = (34903493, 232323) +// lldbr-check:((u32, i64)) simple_tuple_ident = { = 34903493 = 232323 } // lldb-command:continue #![allow(unused_variables)] diff --git a/src/test/debuginfo/destructured-local.rs b/src/test/debuginfo/destructured-local.rs index 1f18b77ab8f6f..5a2edf81d2931 100644 --- a/src/test/debuginfo/destructured-local.rs +++ b/src/test/debuginfo/destructured-local.rs @@ -140,114 +140,157 @@ // lldb-command:run // lldb-command:print a -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) a = 1 // lldb-command:print b -// lldb-check:[...]$1 = false +// lldbg-check:[...]$1 = false +// lldbr-check:(bool) b = false // lldb-command:print c -// lldb-check:[...]$2 = 2 +// lldbg-check:[...]$2 = 2 +// lldbr-check:(isize) c = 2 // lldb-command:print d -// lldb-check:[...]$3 = 3 +// lldbg-check:[...]$3 = 3 +// lldbr-check:(u16) d = 3 // lldb-command:print e -// lldb-check:[...]$4 = 4 +// lldbg-check:[...]$4 = 4 +// lldbr-check:(u16) e = 4 // lldb-command:print f -// lldb-check:[...]$5 = 5 +// lldbg-check:[...]$5 = 5 +// lldbr-check:(isize) f = 5 // lldb-command:print g -// lldb-check:[...]$6 = (6, 7) +// lldbg-check:[...]$6 = (6, 7) +// lldbr-check:((u32, u32)) g = { = 6 = 7 } // lldb-command:print h -// lldb-check:[...]$7 = 8 +// lldbg-check:[...]$7 = 8 +// lldbr-check:(i16) h = 8 // lldb-command:print i -// lldb-check:[...]$8 = Struct { a: 9, b: 10 } +// lldbg-check:[...]$8 = Struct { a: 9, b: 10 } +// lldbr-check:(destructured_local::Struct) i = Struct { a: 9, b: 10 } // lldb-command:print j -// lldb-check:[...]$9 = 11 +// lldbg-check:[...]$9 = 11 +// lldbr-check:(i16) j = 11 // lldb-command:print k -// lldb-check:[...]$10 = 12 +// lldbg-check:[...]$10 = 12 +// lldbr-check:(i64) k = 12 // lldb-command:print l -// lldb-check:[...]$11 = 13 +// lldbg-check:[...]$11 = 13 +// lldbr-check:(i32) l = 13 // lldb-command:print m -// lldb-check:[...]$12 = 14 +// lldbg-check:[...]$12 = 14 +// lldbr-check:(i32) m = 14 // lldb-command:print n -// lldb-check:[...]$13 = 16 +// lldbg-check:[...]$13 = 16 +// lldbr-check:(i32) n = 16 // lldb-command:print o -// lldb-check:[...]$14 = 18 +// lldbg-check:[...]$14 = 18 +// lldbr-check:(i32) o = 18 // lldb-command:print p -// lldb-check:[...]$15 = 19 +// lldbg-check:[...]$15 = 19 +// lldbr-check:(i64) p = 19 // lldb-command:print q -// lldb-check:[...]$16 = 20 +// lldbg-check:[...]$16 = 20 +// lldbr-check:(i32) q = 20 // lldb-command:print r -// lldb-check:[...]$17 = Struct { a: 21, b: 22 } +// lldbg-check:[...]$17 = Struct { a: 21, b: 22 } +// lldbr-check:(destructured_local::Struct) r = Struct { a: 21, b: 22 } // lldb-command:print s -// lldb-check:[...]$18 = 24 +// lldbg-check:[...]$18 = 24 +// lldbr-check:(i32) s = 24 // lldb-command:print t -// lldb-check:[...]$19 = 23 +// lldbg-check:[...]$19 = 23 +// lldbr-check:(i64) t = 23 // lldb-command:print u -// lldb-check:[...]$20 = 25 +// lldbg-check:[...]$20 = 25 +// lldbr-check:(i32) u = 25 // lldb-command:print v -// lldb-check:[...]$21 = 26 +// lldbg-check:[...]$21 = 26 +// lldbr-check:(i32) v = 26 // lldb-command:print w -// lldb-check:[...]$22 = 27 +// lldbg-check:[...]$22 = 27 +// lldbr-check:(i32) w = 27 // lldb-command:print x -// lldb-check:[...]$23 = 28 +// lldbg-check:[...]$23 = 28 +// lldbr-check:(i32) x = 28 // lldb-command:print y -// lldb-check:[...]$24 = 29 +// lldbg-check:[...]$24 = 29 +// lldbr-check:(i64) y = 29 // lldb-command:print z -// lldb-check:[...]$25 = 30 +// lldbg-check:[...]$25 = 30 +// lldbr-check:(i32) z = 30 // lldb-command:print ae -// lldb-check:[...]$26 = 31 +// lldbg-check:[...]$26 = 31 +// lldbr-check:(i64) ae = 31 // lldb-command:print oe -// lldb-check:[...]$27 = 32 +// lldbg-check:[...]$27 = 32 +// lldbr-check:(i32) oe = 32 // lldb-command:print ue -// lldb-check:[...]$28 = 33 +// lldbg-check:[...]$28 = 33 +// lldbr-check:(i32) ue = 33 // lldb-command:print aa -// lldb-check:[...]$29 = (34, 35) +// lldbg-check:[...]$29 = (34, 35) +// lldbr-check:((i32, i32)) aa = { = 34 = 35 } // lldb-command:print bb -// lldb-check:[...]$30 = (36, 37) +// lldbg-check:[...]$30 = (36, 37) +// lldbr-check:((i32, i32)) bb = { = 36 = 37 } // lldb-command:print cc -// lldb-check:[...]$31 = 38 +// lldbg-check:[...]$31 = 38 +// lldbr-check:(i32) cc = 38 // lldb-command:print dd -// lldb-check:[...]$32 = (40, 41, 42) +// lldbg-check:[...]$32 = (40, 41, 42) +// lldbr-check:((i32, i32, i32)) dd = { = 40 = 41 = 42 } // lldb-command:print *ee -// lldb-check:[...]$33 = (43, 44, 45) +// lldbg-check:[...]$33 = (43, 44, 45) +// lldbr-check:((i32, i32, i32)) *ee = { = 43 = 44 = 45 } // lldb-command:print *ff -// lldb-check:[...]$34 = 46 +// lldbg-check:[...]$34 = 46 +// lldbr-check:(i32) *ff = 46 // lldb-command:print gg -// lldb-check:[...]$35 = (47, 48) +// lldbg-check:[...]$35 = (47, 48) +// lldbr-check:((i32, i32)) gg = { = 47 = 48 } // lldb-command:print *hh -// lldb-check:[...]$36 = 50 +// lldbg-check:[...]$36 = 50 +// lldbr-check:(i32) *hh = 50 // lldb-command:print ii -// lldb-check:[...]$37 = 51 +// lldbg-check:[...]$37 = 51 +// lldbr-check:(i32) ii = 51 // lldb-command:print *jj -// lldb-check:[...]$38 = 52 +// lldbg-check:[...]$38 = 52 +// lldbr-check:(i32) *jj = 52 // lldb-command:print kk -// lldb-check:[...]$39 = 53 +// lldbg-check:[...]$39 = 53 +// lldbr-check:(f64) kk = 53 // lldb-command:print ll -// lldb-check:[...]$40 = 54 +// lldbg-check:[...]$40 = 54 +// lldbr-check:(isize) ll = 54 // lldb-command:print mm -// lldb-check:[...]$41 = 55 +// lldbg-check:[...]$41 = 55 +// lldbr-check:(f64) mm = 55 // lldb-command:print *nn -// lldb-check:[...]$42 = 56 +// lldbg-check:[...]$42 = 56 +// lldbr-check:(isize) *nn = 56 #![allow(unused_variables)] diff --git a/src/test/debuginfo/evec-in-struct.rs b/src/test/debuginfo/evec-in-struct.rs index 2e151577590b3..c5460c69944f1 100644 --- a/src/test/debuginfo/evec-in-struct.rs +++ b/src/test/debuginfo/evec-in-struct.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // min-lldb-version: 310 // compile-flags:-g @@ -41,18 +43,23 @@ // lldb-command:run // lldb-command:print no_padding1 -// lldb-check:[...]$0 = NoPadding1 { x: [0, 1, 2], y: -3, z: [4.5, 5.5] } +// lldbg-check:[...]$0 = NoPadding1 { x: [0, 1, 2], y: -3, z: [4.5, 5.5] } +// lldbr-check:(evec_in_struct::NoPadding1) no_padding1 = NoPadding1 { x: [0, 1, 2], y: -3, z: [4.5, 5.5] } // lldb-command:print no_padding2 -// lldb-check:[...]$1 = NoPadding2 { x: [6, 7, 8], y: [[9, 10], [11, 12]] } +// lldbg-check:[...]$1 = NoPadding2 { x: [6, 7, 8], y: [[9, 10], [11, 12]] } +// lldbr-check:(evec_in_struct::NoPadding2) no_padding2 = NoPadding2 { x: [6, 7, 8], y: [[9, 10], [11, 12]] } // lldb-command:print struct_internal_padding -// lldb-check:[...]$2 = StructInternalPadding { x: [13, 14], y: [15, 16] } +// lldbg-check:[...]$2 = StructInternalPadding { x: [13, 14], y: [15, 16] } +// lldbr-check:(evec_in_struct::StructInternalPadding) struct_internal_padding = StructInternalPadding { x: [13, 14], y: [15, 16] } // lldb-command:print single_vec -// lldb-check:[...]$3 = SingleVec { x: [17, 18, 19, 20, 21] } +// lldbg-check:[...]$3 = SingleVec { x: [17, 18, 19, 20, 21] } +// lldbr-check:(evec_in_struct::SingleVec) single_vec = SingleVec { x: [17, 18, 19, 20, 21] } // lldb-command:print struct_padded_at_end -// lldb-check:[...]$4 = StructPaddedAtEnd { x: [22, 23], y: [24, 25] } +// lldbg-check:[...]$4 = StructPaddedAtEnd { x: [22, 23], y: [24, 25] } +// lldbr-check:(evec_in_struct::StructPaddedAtEnd) struct_padded_at_end = StructPaddedAtEnd { x: [22, 23], y: [24, 25] } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/extern-c-fn.rs b/src/test/debuginfo/extern-c-fn.rs index 01901b2c42b8e..2e6602c63ff70 100644 --- a/src/test/debuginfo/extern-c-fn.rs +++ b/src/test/debuginfo/extern-c-fn.rs @@ -33,13 +33,17 @@ // lldb-command:run // lldb-command:print len -// lldb-check:[...]$0 = 20 +// lldbg-check:[...]$0 = 20 +// lldbr-check:(i32) len = 20 // lldb-command:print local0 -// lldb-check:[...]$1 = 19 +// lldbg-check:[...]$1 = 19 +// lldbr-check:(i32) local0 = 19 // lldb-command:print local1 -// lldb-check:[...]$2 = true +// lldbg-check:[...]$2 = true +// lldbr-check:(bool) local1 = true // lldb-command:print local2 -// lldb-check:[...]$3 = 20.5 +// lldbg-check:[...]$3 = 20.5 +// lldbr-check:(f64) local2 = 20.5 // lldb-command:continue diff --git a/src/test/debuginfo/function-arguments.rs b/src/test/debuginfo/function-arguments.rs index c8f2e385a6e74..9fc03feec9b6d 100644 --- a/src/test/debuginfo/function-arguments.rs +++ b/src/test/debuginfo/function-arguments.rs @@ -33,15 +33,19 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = 111102 +// lldbg-check:[...]$0 = 111102 +// lldbr-check:(isize) x = 111102 // lldb-command:print y -// lldb-check:[...]$1 = true +// lldbg-check:[...]$1 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$2 = 2000 +// lldbg-check:[...]$2 = 2000 +// lldbr-check:(i32) a = 2000 // lldb-command:print b -// lldb-check:[...]$3 = 3000 +// lldbg-check:[...]$3 = 3000 +// lldbr-check:(i64) b = 3000 // lldb-command:continue diff --git a/src/test/debuginfo/generic-function.rs b/src/test/debuginfo/generic-function.rs index f1bfc08915edd..89b0e4ca453bf 100644 --- a/src/test/debuginfo/generic-function.rs +++ b/src/test/debuginfo/generic-function.rs @@ -52,27 +52,36 @@ // lldb-command:run // lldb-command:print *t0 -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(i32) *t0 = 1 // lldb-command:print *t1 -// lldb-check:[...]$1 = 2.5 +// lldbg-check:[...]$1 = 2.5 +// lldbr-check:(f64) *t1 = 2.5 // lldb-command:print ret -// lldb-check:[...]$2 = ((1, 2.5), (2.5, 1)) +// lldbg-check:[...]$2 = ((1, 2.5), (2.5, 1)) +// lldbr-check:(((i32, f64), (f64, i32))) ret = { = { = 1 = 2.5 } = { = 2.5 = 1 } } // lldb-command:continue // lldb-command:print *t0 -// lldb-check:[...]$3 = 3.5 +// lldbg-check:[...]$3 = 3.5 +// lldbr-check:(f64) *t0 = 3.5 // lldb-command:print *t1 -// lldb-check:[...]$4 = 4 +// lldbg-check:[...]$4 = 4 +// lldbr-check:(u16) *t1 = 4 // lldb-command:print ret -// lldb-check:[...]$5 = ((3.5, 4), (4, 3.5)) +// lldbg-check:[...]$5 = ((3.5, 4), (4, 3.5)) +// lldbr-check:(((f64, u16), (u16, f64))) ret = { = { = 3.5 = 4 } = { = 4 = 3.5 } } // lldb-command:continue // lldb-command:print *t0 -// lldb-check:[...]$6 = 5 +// lldbg-check:[...]$6 = 5 +// lldbr-check:(i32) *t0 = 5 // lldb-command:print *t1 -// lldb-check:[...]$7 = Struct { a: 6, b: 7.5 } +// lldbg-check:[...]$7 = Struct { a: 6, b: 7.5 } +// lldbr-check:(generic_function::Struct) *t1 = Struct { a: 6, b: 7.5 } // lldb-command:print ret -// lldb-check:[...]$8 = ((5, Struct { a: 6, b: 7.5 }), (Struct { a: 6, b: 7.5 }, 5)) +// lldbg-check:[...]$8 = ((5, Struct { a: 6, b: 7.5 }), (Struct { a: 6, b: 7.5 }, 5)) +// lldbr-check:(((i32, generic_function::Struct), (generic_function::Struct, i32))) ret = { = { = 5 = Struct { a: 6, b: 7.5 } } = { = Struct { a: 6, b: 7.5 } = 5 } } // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/generic-functions-nested.rs b/src/test/debuginfo/generic-functions-nested.rs index 79ae007a50062..ea6dc62eca9eb 100644 --- a/src/test/debuginfo/generic-functions-nested.rs +++ b/src/test/debuginfo/generic-functions-nested.rs @@ -46,27 +46,35 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = -1 +// lldbg-check:[...]$0 = -1 +// lldbr-check:(i32) x = -1 // lldb-command:print y -// lldb-check:[...]$1 = 1 +// lldbg-check:[...]$1 = 1 +// lldbr-check:(i32) y = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = -1 +// lldbg-check:[...]$2 = -1 +// lldbr-check:(i32) x = -1 // lldb-command:print y -// lldb-check:[...]$3 = 2.5 +// lldbg-check:[...]$3 = 2.5 +// lldbr-check:(f64) y = 2.5 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = -2.5 +// lldbg-check:[...]$4 = -2.5 +// lldbr-check:(f64) x = -2.5 // lldb-command:print y -// lldb-check:[...]$5 = 1 +// lldbg-check:[...]$5 = 1 +// lldbr-check:(i32) y = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$6 = -2.5 +// lldbg-check:[...]$6 = -2.5 +// lldbr-check:(f64) x = -2.5 // lldb-command:print y -// lldb-check:[...]$7 = 2.5 +// lldbg-check:[...]$7 = 2.5 +// lldbr-check:(f64) y = 2.5 // lldb-command:continue diff --git a/src/test/debuginfo/generic-method-on-generic-struct.rs b/src/test/debuginfo/generic-method-on-generic-struct.rs index 4f3f6dfc821ee..97bb9aa98e87b 100644 --- a/src/test/debuginfo/generic-method-on-generic-struct.rs +++ b/src/test/debuginfo/generic-method-on-generic-struct.rs @@ -8,6 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength // compile-flags:-g // min-lldb-version: 310 @@ -73,47 +74,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbg-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbr-check:(generic_method_on_generic_struct::Struct<(u32, i32)>) *self = { x = { = 8888 = -8888 } } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = 2 +// lldbg-check:[...]$2 = 2 +// lldbr-check:(u16) arg2 = 2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbg-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbr-check:(generic_method_on_generic_struct::Struct<(u32, i32)>) self = { x = { = 8888 = -8888 } } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(i16) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 1234.5 } +// lldbg-check:[...]$6 = Struct { x: 1234.5 } +// lldbr-check:(generic_method_on_generic_struct::Struct) *self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(i32) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 1234.5 } +// lldbg-check:[...]$9 = Struct { x: 1234.5 } +// lldbr-check:(generic_method_on_generic_struct::Struct) self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(i64) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 1234.5 } +// lldbg-check:[...]$12 = Struct { x: 1234.5 } +// lldbr-check:(generic_method_on_generic_struct::Struct) *self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10.5 +// lldbg-check:[...]$14 = -10.5 +// lldbr-check:(f32) arg2 = -10.5 // lldb-command:continue #![feature(box_syntax)] diff --git a/src/test/debuginfo/generic-struct.rs b/src/test/debuginfo/generic-struct.rs index 35f00ce78717b..1a442c5103cd5 100644 --- a/src/test/debuginfo/generic-struct.rs +++ b/src/test/debuginfo/generic-struct.rs @@ -35,14 +35,18 @@ // lldb-command:run // lldb-command:print int_int -// lldb-check:[...]$0 = AGenericStruct { key: 0, value: 1 } +// lldbg-check:[...]$0 = AGenericStruct { key: 0, value: 1 } +// lldbr-check:(generic_struct::AGenericStruct) int_int = AGenericStruct { key: 0, value: 1 } // lldb-command:print int_float -// lldb-check:[...]$1 = AGenericStruct { key: 2, value: 3.5 } +// lldbg-check:[...]$1 = AGenericStruct { key: 2, value: 3.5 } +// lldbr-check:(generic_struct::AGenericStruct) int_float = AGenericStruct { key: 2, value: 3.5 } // lldb-command:print float_int -// lldb-check:[...]$2 = AGenericStruct { key: 4.5, value: 5 } +// lldbg-check:[...]$2 = AGenericStruct { key: 4.5, value: 5 } +// lldbr-check:(generic_struct::AGenericStruct) float_int = AGenericStruct { key: 4.5, value: 5 } // lldb-command:print float_int_float -// lldb-check:[...]$3 = AGenericStruct> { key: 6.5, value: AGenericStruct { key: 7, value: 8.5 } } +// lldbg-check:[...]$3 = AGenericStruct> { key: 6.5, val +// lldbr-check:(generic_struct::AGenericStruct>) float_int_float = AGenericStruct> { key: 6.5, value: AGenericStruct { key: 7, value: 8.5 } } #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/generic-tuple-style-enum.rs b/src/test/debuginfo/generic-tuple-style-enum.rs index 012bd6140cdbe..62bec28a022af 100644 --- a/src/test/debuginfo/generic-tuple-style-enum.rs +++ b/src/test/debuginfo/generic-tuple-style-enum.rs @@ -41,16 +41,20 @@ // lldb-command:run // lldb-command:print case1 -// lldb-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868) +// lldbg-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868) +// lldbr-check:(generic_tuple_style_enum::Regular::Case1) case1 = { = 0 = 31868 = 31868 = 31868 = 31868 } // lldb-command:print case2 -// lldb-check:[...]$1 = Case2(0, 286331153, 286331153) +// lldbg-check:[...]$1 = Case2(0, 286331153, 286331153) +// lldbr-check:(generic_tuple_style_enum::Regular::Case2) case2 = Regular::Case2 { generic_tuple_style_enum::Regular::Case1: 0, generic_tuple_style_enum::Regular::Case2: 286331153, generic_tuple_style_enum::Regular::Case3: 286331153 } // lldb-command:print case3 -// lldb-check:[...]$2 = Case3(0, 6438275382588823897) +// lldbg-check:[...]$2 = Case3(0, 6438275382588823897) +// lldbr-check:(generic_tuple_style_enum::Regular::Case3) case3 = Regular::Case3 { generic_tuple_style_enum::Regular::Case1: 0, generic_tuple_style_enum::Regular::Case2: 6438275382588823897 } // lldb-command:print univariant -// lldb-check:[...]$3 = TheOnlyCase(-1) +// lldbg-check:[...]$3 = TheOnlyCase(-1) +// lldbr-check:(generic_tuple_style_enum::Univariant) univariant = { generic_tuple_style_enum::TheOnlyCase = { = -1 } } #![feature(omit_gdb_pretty_printer_section)] #![omit_gdb_pretty_printer_section] diff --git a/src/test/debuginfo/include_string.rs b/src/test/debuginfo/include_string.rs index 2c75349e5c8c7..e915bf137028b 100644 --- a/src/test/debuginfo/include_string.rs +++ b/src/test/debuginfo/include_string.rs @@ -26,11 +26,14 @@ // lldb-command:run // lldb-command:print string1.length -// lldb-check:[...]$0 = 48 +// lldbg-check:[...]$0 = 48 +// lldbr-check:(usize) length = 48 // lldb-command:print string2.length -// lldb-check:[...]$1 = 49 +// lldbg-check:[...]$1 = 49 +// lldbr-check:(usize) length = 49 // lldb-command:print string3.length -// lldb-check:[...]$2 = 50 +// lldbg-check:[...]$2 = 50 +// lldbr-check:(usize) length = 50 // lldb-command:continue diff --git a/src/test/debuginfo/issue-22656.rs b/src/test/debuginfo/issue-22656.rs index a971e06ed5ec2..bf28adf865ad2 100644 --- a/src/test/debuginfo/issue-22656.rs +++ b/src/test/debuginfo/issue-22656.rs @@ -23,10 +23,12 @@ // lldb-command:run // lldb-command:print v -// lldb-check:[...]$0 = vec![1, 2, 3] +// lldbg-check:[...]$0 = vec![1, 2, 3] +// lldbr-check:(alloc::vec::Vec) v = vec![1, 2, 3] // lldb-command:print zs -// lldb-check:[...]$1 = StructWithZeroSizedField { x: ZeroSizedStruct, y: 123, z: ZeroSizedStruct, w: 456 } -// lldb-command:continue +// lldbg-check:[...]$1 = StructWithZeroSizedField { x: ZeroSizedStruct, y: 123, z: ZeroSizedStruct, w: +// lldbr-check:(issue_22656::StructWithZeroSizedField) zs = StructWithZeroSizedField { x: ZeroSizedStruct { }, y: 123, z: ZeroSizedStruct { }, w: 456 } +// lldbr-command:continue #![allow(unused_variables)] #![allow(dead_code)] diff --git a/src/test/debuginfo/lexical-scope-in-for-loop.rs b/src/test/debuginfo/lexical-scope-in-for-loop.rs index e99e241411bfd..7a3c30ed8e5d0 100644 --- a/src/test/debuginfo/lexical-scope-in-for-loop.rs +++ b/src/test/debuginfo/lexical-scope-in-for-loop.rs @@ -55,34 +55,41 @@ // FIRST ITERATION // lldb-command:print x -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(i32) x = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(i32) x = -1 // lldb-command:continue // SECOND ITERATION // lldb-command:print x -// lldb-check:[...]$2 = 2 +// lldbg-check:[...]$2 = 2 +// lldbr-check:(i32) x = 2 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = -2 +// lldbg-check:[...]$3 = -2 +// lldbr-check:(i32) x = -2 // lldb-command:continue // THIRD ITERATION // lldb-command:print x -// lldb-check:[...]$4 = 3 +// lldbg-check:[...]$4 = 3 +// lldbr-check:(i32) x = 3 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = -3 +// lldbg-check:[...]$5 = -3 +// lldbr-check:(i32) x = -3 // lldb-command:continue // AFTER LOOP // lldb-command:print x -// lldb-check:[...]$6 = 1000000 +// lldbg-check:[...]$6 = 1000000 +// lldbr-check:(i32) x = 1000000 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-in-if.rs b/src/test/debuginfo/lexical-scope-in-if.rs index 42e288321e197..1a21fe6c1a98c 100644 --- a/src/test/debuginfo/lexical-scope-in-if.rs +++ b/src/test/debuginfo/lexical-scope-in-if.rs @@ -79,58 +79,74 @@ // BEFORE if // lldb-command:print x -// lldb-check:[...]$0 = 999 +// lldbg-check:[...]$0 = 999 +// lldbr-check:(i32) x = 999 // lldb-command:print y -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue // AT BEGINNING of 'then' block // lldb-command:print x -// lldb-check:[...]$2 = 999 +// lldbg-check:[...]$2 = 999 +// lldbr-check:(i32) x = 999 // lldb-command:print y -// lldb-check:[...]$3 = -1 +// lldbg-check:[...]$3 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue // AFTER 1st redeclaration of 'x' // lldb-command:print x -// lldb-check:[...]$4 = 1001 +// lldbg-check:[...]$4 = 1001 +// lldbr-check:(i32) x = 1001 // lldb-command:print y -// lldb-check:[...]$5 = -1 +// lldbg-check:[...]$5 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue // AFTER 2st redeclaration of 'x' // lldb-command:print x -// lldb-check:[...]$6 = 1002 +// lldbg-check:[...]$6 = 1002 +// lldbr-check:(i32) x = 1002 // lldb-command:print y -// lldb-check:[...]$7 = 1003 +// lldbg-check:[...]$7 = 1003 +// lldbr-check:(i32) y = 1003 // lldb-command:continue // AFTER 1st if expression // lldb-command:print x -// lldb-check:[...]$8 = 999 +// lldbg-check:[...]$8 = 999 +// lldbr-check:(i32) x = 999 // lldb-command:print y -// lldb-check:[...]$9 = -1 +// lldbg-check:[...]$9 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue // BEGINNING of else branch // lldb-command:print x -// lldb-check:[...]$10 = 999 +// lldbg-check:[...]$10 = 999 +// lldbr-check:(i32) x = 999 // lldb-command:print y -// lldb-check:[...]$11 = -1 +// lldbg-check:[...]$11 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue // BEGINNING of else branch // lldb-command:print x -// lldb-check:[...]$12 = 1004 +// lldbg-check:[...]$12 = 1004 +// lldbr-check:(i32) x = 1004 // lldb-command:print y -// lldb-check:[...]$13 = 1005 +// lldbg-check:[...]$13 = 1005 +// lldbr-check:(i32) y = 1005 // lldb-command:continue // BEGINNING of else branch // lldb-command:print x -// lldb-check:[...]$14 = 999 +// lldbg-check:[...]$14 = 999 +// lldbr-check:(i32) x = 999 // lldb-command:print y -// lldb-check:[...]$15 = -1 +// lldbg-check:[...]$15 = -1 +// lldbr-check:(i32) y = -1 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-in-match.rs b/src/test/debuginfo/lexical-scope-in-match.rs index 597d9837aadcf..3c10039e76abf 100644 --- a/src/test/debuginfo/lexical-scope-in-match.rs +++ b/src/test/debuginfo/lexical-scope-in-match.rs @@ -74,55 +74,73 @@ // lldb-command:run // lldb-command:print shadowed -// lldb-check:[...]$0 = 231 +// lldbg-check:[...]$0 = 231 +// lldbr-check:(i32) shadowed = 231 // lldb-command:print not_shadowed -// lldb-check:[...]$1 = 232 +// lldbg-check:[...]$1 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$2 = 233 +// lldbg-check:[...]$2 = 233 +// lldbr-check:(i32) shadowed = 233 // lldb-command:print not_shadowed -// lldb-check:[...]$3 = 232 +// lldbg-check:[...]$3 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:print local_to_arm -// lldb-check:[...]$4 = 234 +// lldbg-check:[...]$4 = 234 +// lldbr-check:(i32) local_to_arm = 234 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$5 = 236 +// lldbg-check:[...]$5 = 236 +// lldbr-check:(i32) shadowed = 236 // lldb-command:print not_shadowed -// lldb-check:[...]$6 = 232 +// lldbg-check:[...]$6 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$7 = 237 +// lldbg-check:[...]$7 = 237 +// lldbr-check:(isize) shadowed = 237 // lldb-command:print not_shadowed -// lldb-check:[...]$8 = 232 +// lldbg-check:[...]$8 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:print local_to_arm -// lldb-check:[...]$9 = 238 +// lldbg-check:[...]$9 = 238 +// lldbr-check:(isize) local_to_arm = 238 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$10 = 239 +// lldbg-check:[...]$10 = 239 +// lldbr-check:(isize) shadowed = 239 // lldb-command:print not_shadowed -// lldb-check:[...]$11 = 232 +// lldbg-check:[...]$11 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$12 = 241 +// lldbg-check:[...]$12 = 241 +// lldbr-check:(isize) shadowed = 241 // lldb-command:print not_shadowed -// lldb-check:[...]$13 = 232 +// lldbg-check:[...]$13 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$14 = 243 +// lldbg-check:[...]$14 = 243 +// lldbr-check:(i32) shadowed = 243 // lldb-command:print *local_to_arm -// lldb-check:[...]$15 = 244 +// lldbg-check:[...]$15 = 244 +// lldbr-check:(i32) *local_to_arm = 244 // lldb-command:continue // lldb-command:print shadowed -// lldb-check:[...]$16 = 231 +// lldbg-check:[...]$16 = 231 +// lldbr-check:(i32) shadowed = 231 // lldb-command:print not_shadowed -// lldb-check:[...]$17 = 232 +// lldbg-check:[...]$17 = 232 +// lldbr-check:(i32) not_shadowed = 232 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-in-stack-closure.rs b/src/test/debuginfo/lexical-scope-in-stack-closure.rs index 0a8d3b61a8d8d..fec9d9af1baca 100644 --- a/src/test/debuginfo/lexical-scope-in-stack-closure.rs +++ b/src/test/debuginfo/lexical-scope-in-stack-closure.rs @@ -46,27 +46,33 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = false +// lldbg-check:[...]$1 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 1000 +// lldbg-check:[...]$2 = 1000 +// lldbr-check:(isize) x = 1000 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = 2.5 +// lldbg-check:[...]$3 = 2.5 +// lldbr-check:(f64) x = 2.5 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = true +// lldbg-check:[...]$4 = true +// lldbr-check:(bool) x = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = false +// lldbg-check:[...]$5 = false +// lldbr-check:(bool) x = false // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs b/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs index e55088afd7d9f..d160b0250cf32 100644 --- a/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs +++ b/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs @@ -78,57 +78,70 @@ // FIRST ITERATION // lldb-command:print x -// lldb-check:[...]$0 = 0 +// lldbg-check:[...]$0 = 0 +// lldbr-check:(i32) x = 0 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = 1 +// lldbg-check:[...]$1 = 1 +// lldbr-check:(i32) x = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 101 +// lldbg-check:[...]$2 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = 101 +// lldbg-check:[...]$3 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = -987 +// lldbg-check:[...]$4 = -987 +// lldbr-check:(i32) x = -987 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = 101 +// lldbg-check:[...]$5 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // SECOND ITERATION // lldb-command:print x -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(i32) x = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$7 = 2 +// lldbg-check:[...]$7 = 2 +// lldbr-check:(i32) x = 2 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$8 = 102 +// lldbg-check:[...]$8 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$9 = 102 +// lldbg-check:[...]$9 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$10 = -987 +// lldbg-check:[...]$10 = -987 +// lldbr-check:(i32) x = -987 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$11 = 102 +// lldbg-check:[...]$11 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$12 = 2 +// lldbg-check:[...]$12 = 2 +// lldbr-check:(i32) x = 2 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-in-unique-closure.rs b/src/test/debuginfo/lexical-scope-in-unique-closure.rs index 70dece865ece0..574752d728f6f 100644 --- a/src/test/debuginfo/lexical-scope-in-unique-closure.rs +++ b/src/test/debuginfo/lexical-scope-in-unique-closure.rs @@ -46,27 +46,33 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = false +// lldbg-check:[...]$1 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 1000 +// lldbg-check:[...]$2 = 1000 +// lldbr-check:(isize) x = 1000 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = 2.5 +// lldbg-check:[...]$3 = 2.5 +// lldbr-check:(f64) x = 2.5 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = true +// lldbg-check:[...]$4 = true +// lldbr-check:(bool) x = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = false +// lldbg-check:[...]$5 = false +// lldbr-check:(bool) x = false // lldb-command:continue diff --git a/src/test/debuginfo/lexical-scope-in-while.rs b/src/test/debuginfo/lexical-scope-in-while.rs index 38d8b75a644fd..7bc0409f2bb02 100644 --- a/src/test/debuginfo/lexical-scope-in-while.rs +++ b/src/test/debuginfo/lexical-scope-in-while.rs @@ -78,57 +78,70 @@ // FIRST ITERATION // lldb-command:print x -// lldb-check:[...]$0 = 0 +// lldbg-check:[...]$0 = 0 +// lldbr-check:(i32) x = 0 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = 1 +// lldbg-check:[...]$1 = 1 +// lldbr-check:(i32) x = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 101 +// lldbg-check:[...]$2 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = 101 +// lldbg-check:[...]$3 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = -987 +// lldbg-check:[...]$4 = -987 +// lldbr-check:(i32) x = -987 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = 101 +// lldbg-check:[...]$5 = 101 +// lldbr-check:(i32) x = 101 // lldb-command:continue // SECOND ITERATION // lldb-command:print x -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(i32) x = 1 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$7 = 2 +// lldbg-check:[...]$7 = 2 +// lldbr-check:(i32) x = 2 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$8 = 102 +// lldbg-check:[...]$8 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$9 = 102 +// lldbg-check:[...]$9 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$10 = -987 +// lldbg-check:[...]$10 = -987 +// lldbr-check:(i32) x = -987 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$11 = 102 +// lldbg-check:[...]$11 = 102 +// lldbr-check:(i32) x = 102 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$12 = 2 +// lldbg-check:[...]$12 = 2 +// lldbr-check:(i32) x = 2 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scope-with-macro.rs b/src/test/debuginfo/lexical-scope-with-macro.rs index 32d775168692b..4e88f65ad1d00 100644 --- a/src/test/debuginfo/lexical-scope-with-macro.rs +++ b/src/test/debuginfo/lexical-scope-with-macro.rs @@ -67,48 +67,57 @@ // lldb-command:run // lldb-command:print a -// lldb-check:[...]$0 = 10 +// lldbg-check:[...]$0 = 10 +// lldbr-check:(i32) a = 10 // lldb-command:print b -// lldb-check:[...]$1 = 34 +// lldbg-check:[...]$1 = 34 +// lldbr-check:(i32) b = 34 // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$2 = 890242 +// lldbg-check:[...]$2 = 890242 +// lldbr-check:(i32) a = 10 // lldb-command:print b -// lldb-check:[...]$3 = 34 +// lldbg-check:[...]$3 = 34 +// lldbr-check:(i32) b = 34 // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$4 = 10 +// lldbg-check:[...]$4 = 10 +// lldbr-check:(i32) a = 10 // lldb-command:print b -// lldb-check:[...]$5 = 34 +// lldbg-check:[...]$5 = 34 +// lldbr-check:(i32) b = 34 // lldb-command:continue // lldb-command:print a -// lldb-check:[...]$6 = 102 +// lldbg-check:[...]$6 = 102 +// lldbr-check:(i32) a = 10 // lldb-command:print b -// lldb-check:[...]$7 = 34 +// lldbg-check:[...]$7 = 34 +// lldbr-check:(i32) b = 34 // lldb-command:continue -// lldb-command:print a -// lldb-check:[...]$8 = 110 -// lldb-command:print b -// lldb-check:[...]$9 = 34 -// lldb-command:continue - -// lldb-command:print a -// lldb-check:[...]$10 = 10 -// lldb-command:print b -// lldb-check:[...]$11 = 34 -// lldb-command:continue - -// lldb-command:print a -// lldb-check:[...]$12 = 10 -// lldb-command:print b -// lldb-check:[...]$13 = 34 -// lldb-command:print c -// lldb-check:[...]$14 = 400 -// lldb-command:continue +// Don't test this with rust-enabled lldb for now; see issue #48807 +// lldbg-command:print a +// lldbg-check:[...]$8 = 110 +// lldbg-command:print b +// lldbg-check:[...]$9 = 34 +// lldbg-command:continue + +// lldbg-command:print a +// lldbg-check:[...]$10 = 10 +// lldbg-command:print b +// lldbg-check:[...]$11 = 34 +// lldbg-command:continue + +// lldbg-command:print a +// lldbg-check:[...]$12 = 10 +// lldbg-command:print b +// lldbg-check:[...]$13 = 34 +// lldbg-command:print c +// lldbg-check:[...]$14 = 400 +// lldbg-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/lexical-scopes-in-block-expression.rs b/src/test/debuginfo/lexical-scopes-in-block-expression.rs index e76f9da1c2505..9cb2a4c546efa 100644 --- a/src/test/debuginfo/lexical-scopes-in-block-expression.rs +++ b/src/test/debuginfo/lexical-scopes-in-block-expression.rs @@ -205,155 +205,203 @@ // STRUCT EXPRESSION // lldb-command:print val -// lldb-check:[...]$0 = -1 +// lldbg-check:[...]$0 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$1 = 10 +// lldbg-check:[...]$1 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$2 = 11 +// lldbg-check:[...]$2 = 11 +// lldbr-check:(isize) val = 11 // lldb-command:print ten -// lldb-check:[...]$3 = 10 +// lldbg-check:[...]$3 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$4 = -1 +// lldbg-check:[...]$4 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$5 = 10 +// lldbg-check:[...]$5 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // FUNCTION CALL // lldb-command:print val -// lldb-check:[...]$6 = -1 +// lldbg-check:[...]$6 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$7 = 10 +// lldbg-check:[...]$7 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$8 = 12 +// lldbg-check:[...]$8 = 12 +// lldbr-check:(isize) val = 12 // lldb-command:print ten -// lldb-check:[...]$9 = 10 +// lldbg-check:[...]$9 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$10 = -1 +// lldbg-check:[...]$10 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$11 = 10 +// lldbg-check:[...]$11 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // TUPLE EXPRESSION // lldb-command:print val -// lldb-check:[...]$12 = -1 +// lldbg-check:[...]$12 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$13 = 10 +// lldbg-check:[...]$13 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$14 = 13 +// lldbg-check:[...]$14 = 13 +// lldbr-check:(isize) val = 13 // lldb-command:print ten -// lldb-check:[...]$15 = 10 +// lldbg-check:[...]$15 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$16 = -1 +// lldbg-check:[...]$16 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$17 = 10 +// lldbg-check:[...]$17 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // VEC EXPRESSION // lldb-command:print val -// lldb-check:[...]$18 = -1 +// lldbg-check:[...]$18 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$19 = 10 +// lldbg-check:[...]$19 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$20 = 14 +// lldbg-check:[...]$20 = 14 +// lldbr-check:(isize) val = 14 // lldb-command:print ten -// lldb-check:[...]$21 = 10 +// lldbg-check:[...]$21 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$22 = -1 +// lldbg-check:[...]$22 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$23 = 10 +// lldbg-check:[...]$23 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // REPEAT VEC EXPRESSION // lldb-command:print val -// lldb-check:[...]$24 = -1 +// lldbg-check:[...]$24 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$25 = 10 +// lldbg-check:[...]$25 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$26 = 15 +// lldbg-check:[...]$26 = 15 +// lldbr-check:(isize) val = 15 // lldb-command:print ten -// lldb-check:[...]$27 = 10 +// lldbg-check:[...]$27 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$28 = -1 +// lldbg-check:[...]$28 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$29 = 10 +// lldbg-check:[...]$29 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // ASSIGNMENT EXPRESSION // lldb-command:print val -// lldb-check:[...]$30 = -1 +// lldbg-check:[...]$30 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$31 = 10 +// lldbg-check:[...]$31 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$32 = 16 +// lldbg-check:[...]$32 = 16 +// lldbr-check:(isize) val = 16 // lldb-command:print ten -// lldb-check:[...]$33 = 10 +// lldbg-check:[...]$33 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$34 = -1 +// lldbg-check:[...]$34 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$35 = 10 +// lldbg-check:[...]$35 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // ARITHMETIC EXPRESSION // lldb-command:print val -// lldb-check:[...]$36 = -1 +// lldbg-check:[...]$36 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$37 = 10 +// lldbg-check:[...]$37 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$38 = 17 +// lldbg-check:[...]$38 = 17 +// lldbr-check:(isize) val = 17 // lldb-command:print ten -// lldb-check:[...]$39 = 10 +// lldbg-check:[...]$39 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$40 = -1 +// lldbg-check:[...]$40 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$41 = 10 +// lldbg-check:[...]$41 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // INDEX EXPRESSION // lldb-command:print val -// lldb-check:[...]$42 = -1 +// lldbg-check:[...]$42 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$43 = 10 +// lldbg-check:[...]$43 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$44 = 18 +// lldbg-check:[...]$44 = 18 +// lldbr-check:(isize) val = 18 // lldb-command:print ten -// lldb-check:[...]$45 = 10 +// lldbg-check:[...]$45 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue // lldb-command:print val -// lldb-check:[...]$46 = -1 +// lldbg-check:[...]$46 = -1 +// lldbr-check:(i32) val = -1 // lldb-command:print ten -// lldb-check:[...]$47 = 10 +// lldbg-check:[...]$47 = 10 +// lldbr-check:(isize) ten = 10 // lldb-command:continue #![allow(unused_variables)] diff --git a/src/test/debuginfo/method-on-generic-struct.rs b/src/test/debuginfo/method-on-generic-struct.rs index 20d419b4ac088..57238961e3fa3 100644 --- a/src/test/debuginfo/method-on-generic-struct.rs +++ b/src/test/debuginfo/method-on-generic-struct.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbg-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbr-check:(method_on_generic_struct::Struct<(u32, i32)>) *self = { x = { = 8888 = -8888 } } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = -2 +// lldbg-check:[...]$2 = -2 +// lldbr-check:(isize) arg2 = -2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbg-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) } +// lldbr-check:(method_on_generic_struct::Struct<(u32, i32)>) self = { x = { = 8888 = -8888 } } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(isize) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 1234.5 } +// lldbg-check:[...]$6 = Struct { x: 1234.5 } +// lldbr-check:(method_on_generic_struct::Struct) *self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(isize) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 1234.5 } +// lldbg-check:[...]$9 = Struct { x: 1234.5 } +// lldbr-check:(method_on_generic_struct::Struct) self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(isize) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 1234.5 } +// lldbg-check:[...]$12 = Struct { x: 1234.5 } +// lldbr-check:(method_on_generic_struct::Struct) *self = Struct { x: 1234.5 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10 +// lldbg-check:[...]$14 = -10 +// lldbr-check:(isize) arg2 = -10 // lldb-command:continue diff --git a/src/test/debuginfo/method-on-struct.rs b/src/test/debuginfo/method-on-struct.rs index c7546fe2221ff..e64962593dfcd 100644 --- a/src/test/debuginfo/method-on-struct.rs +++ b/src/test/debuginfo/method-on-struct.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct { x: 100 } +// lldbg-check:[...]$0 = Struct { x: 100 } +// lldbr-check:(method_on_struct::Struct) *self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = -2 +// lldbg-check:[...]$2 = -2 +// lldbr-check:(isize) arg2 = -2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct { x: 100 } +// lldbg-check:[...]$3 = Struct { x: 100 } +// lldbr-check:(method_on_struct::Struct) self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(isize) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 200 } +// lldbg-check:[...]$6 = Struct { x: 200 } +// lldbr-check:(method_on_struct::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(isize) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 200 } +// lldbg-check:[...]$9 = Struct { x: 200 } +// lldbr-check:(method_on_struct::Struct) self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(isize) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 200 } +// lldbg-check:[...]$12 = Struct { x: 200 } +// lldbr-check:(method_on_struct::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10 +// lldbg-check:[...]$14 = -10 +// lldbr-check:(isize) arg2 = -10 // lldb-command:continue diff --git a/src/test/debuginfo/method-on-trait.rs b/src/test/debuginfo/method-on-trait.rs index 1dc37bb06ac40..4c1e111d3b81d 100644 --- a/src/test/debuginfo/method-on-trait.rs +++ b/src/test/debuginfo/method-on-trait.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct { x: 100 } +// lldbg-check:[...]$0 = Struct { x: 100 } +// lldbr-check:(method_on_trait::Struct) *self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = -2 +// lldbg-check:[...]$2 = -2 +// lldbr-check:(isize) arg2 = -2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct { x: 100 } +// lldbg-check:[...]$3 = Struct { x: 100 } +// lldbr-check:(method_on_trait::Struct) self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(isize) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 200 } +// lldbg-check:[...]$6 = Struct { x: 200 } +// lldbr-check:(method_on_trait::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(isize) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 200 } +// lldbg-check:[...]$9 = Struct { x: 200 } +// lldbr-check:(method_on_trait::Struct) self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(isize) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 200 } +// lldbg-check:[...]$12 = Struct { x: 200 } +// lldbr-check:(method_on_trait::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10 +// lldbg-check:[...]$14 = -10 +// lldbr-check:(isize) arg2 = -10 // lldb-command:continue diff --git a/src/test/debuginfo/method-on-tuple-struct.rs b/src/test/debuginfo/method-on-tuple-struct.rs index dac762ae0c35b..cef7a1cbf1b56 100644 --- a/src/test/debuginfo/method-on-tuple-struct.rs +++ b/src/test/debuginfo/method-on-tuple-struct.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = TupleStruct(100, -100.5) +// lldbg-check:[...]$0 = TupleStruct(100, -100.5) +// lldbr-check:(method_on_tuple_struct::TupleStruct) *self = { = 100 = -100.5 } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = -2 +// lldbg-check:[...]$2 = -2 +// lldbr-check:(isize) arg2 = -2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = TupleStruct(100, -100.5) +// lldbg-check:[...]$3 = TupleStruct(100, -100.5) +// lldbr-check:(method_on_tuple_struct::TupleStruct) self = { = 100 = -100.5 } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(isize) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = TupleStruct(200, -200.5) +// lldbg-check:[...]$6 = TupleStruct(200, -200.5) +// lldbr-check:(method_on_tuple_struct::TupleStruct) *self = { = 200 = -200.5 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(isize) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = TupleStruct(200, -200.5) +// lldbg-check:[...]$9 = TupleStruct(200, -200.5) +// lldbr-check:(method_on_tuple_struct::TupleStruct) self = { = 200 = -200.5 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(isize) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = TupleStruct(200, -200.5) +// lldbg-check:[...]$12 = TupleStruct(200, -200.5) +// lldbr-check:(method_on_tuple_struct::TupleStruct) *self = { = 200 = -200.5 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10 +// lldbg-check:[...]$14 = -10 +// lldbr-check:(isize) arg2 = -10 // lldb-command:continue diff --git a/src/test/debuginfo/multi-cgu.rs b/src/test/debuginfo/multi-cgu.rs index f4f9f92396f2c..7f370954b9053 100644 --- a/src/test/debuginfo/multi-cgu.rs +++ b/src/test/debuginfo/multi-cgu.rs @@ -35,11 +35,13 @@ // lldb-command:run // lldb-command:print xxx -// lldb-check:[...]$0 = 12345 +// lldbg-check:[...]$0 = 12345 +// lldbr-check:(u32) xxx = 12345 // lldb-command:continue // lldb-command:print yyy -// lldb-check:[...]$1 = 67890 +// lldbg-check:[...]$1 = 67890 +// lldbr-check:(u64) yyy = 67890 // lldb-command:continue diff --git a/src/test/debuginfo/multiple-functions-equal-var-names.rs b/src/test/debuginfo/multiple-functions-equal-var-names.rs index 71ba1bcea306a..b2327e494e7d1 100644 --- a/src/test/debuginfo/multiple-functions-equal-var-names.rs +++ b/src/test/debuginfo/multiple-functions-equal-var-names.rs @@ -33,15 +33,18 @@ // lldb-command:run // lldb-command:print abc -// lldb-check:[...]$0 = 10101 +// lldbg-check:[...]$0 = 10101 +// lldbr-check:(i32) abc = 10101 // lldb-command:continue // lldb-command:print abc -// lldb-check:[...]$1 = 20202 +// lldbg-check:[...]$1 = 20202 +// lldbr-check:(i32) abc = 20202 // lldb-command:continue // lldb-command:print abc -// lldb-check:[...]$2 = 30303 +// lldbg-check:[...]$2 = 30303 +// lldbr-check:(i32) abc = 30303 #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/multiple-functions.rs b/src/test/debuginfo/multiple-functions.rs index 7a1b7b19d9f5d..d78ef0292c160 100644 --- a/src/test/debuginfo/multiple-functions.rs +++ b/src/test/debuginfo/multiple-functions.rs @@ -33,15 +33,18 @@ // lldb-command:run // lldb-command:print a -// lldb-check:[...]$0 = 10101 +// lldbg-check:[...]$0 = 10101 +// lldbr-check:(i32) a = 10101 // lldb-command:continue // lldb-command:print b -// lldb-check:[...]$1 = 20202 +// lldbg-check:[...]$1 = 20202 +// lldbr-check:(i32) b = 20202 // lldb-command:continue // lldb-command:print c -// lldb-check:[...]$2 = 30303 +// lldbg-check:[...]$2 = 30303 +// lldbr-check:(i32) c = 30303 #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/name-shadowing-and-scope-nesting.rs b/src/test/debuginfo/name-shadowing-and-scope-nesting.rs index 462e1c59aea22..91f0e14157ee3 100644 --- a/src/test/debuginfo/name-shadowing-and-scope-nesting.rs +++ b/src/test/debuginfo/name-shadowing-and-scope-nesting.rs @@ -58,39 +58,51 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:print y -// lldb-check:[...]$1 = true +// lldbg-check:[...]$1 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 10 +// lldbg-check:[...]$2 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:print y -// lldb-check:[...]$3 = true +// lldbg-check:[...]$3 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = 10.5 +// lldbg-check:[...]$4 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:print y -// lldb-check:[...]$5 = 20 +// lldbg-check:[...]$5 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$6 = true +// lldbg-check:[...]$6 = true +// lldbr-check:(bool) x = true // lldb-command:print y -// lldb-check:[...]$7 = 2220 +// lldbg-check:[...]$7 = 2220 +// lldbr-check:(i32) y = 2220 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$8 = 203203.5 +// lldbg-check:[...]$8 = 203203.5 +// lldbr-check:(f64) x = 203203.5 // lldb-command:print y -// lldb-check:[...]$9 = 2220 +// lldbg-check:[...]$9 = 2220 +// lldbr-check:(i32) y = 2220 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$10 = 10.5 +// lldbg-check:[...]$10 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:print y -// lldb-check:[...]$11 = 20 +// lldbg-check:[...]$11 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/packed-struct-with-destructor.rs b/src/test/debuginfo/packed-struct-with-destructor.rs index 50bd857d46076..d5273d53dc59a 100644 --- a/src/test/debuginfo/packed-struct-with-destructor.rs +++ b/src/test/debuginfo/packed-struct-with-destructor.rs @@ -56,28 +56,36 @@ // lldb-command:run // lldb-command:print packed -// lldb-check:[...]$0 = Packed { x: 123, y: 234, z: 345 } +// lldbg-check:[...]$0 = Packed { x: 123, y: 234, z: 345 } +// lldbr-check:(packed_struct_with_destructor::Packed) packed = Packed { x: 123, y: 234, z: 345 } // lldb-command:print packedInPacked -// lldb-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } +// lldbg-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } +// lldbr-check:(packed_struct_with_destructor::PackedInPacked) packedInPacked = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } // lldb-command:print packedInUnpacked -// lldb-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } +// lldbg-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } +// lldbr-check:(packed_struct_with_destructor::PackedInUnpacked) packedInUnpacked = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } // lldb-command:print unpackedInPacked -// lldb-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654 }, c: Unpacked { x: 543, y: 432, z: 321 }, d: 210 } +// lldbg-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654 }, c: Unpacked { x: 543, y: 432, z: 321 }, d: 210 } +// lldbr-check:(packed_struct_with_destructor::UnpackedInPacked) unpackedInPacked = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654 }, c: Unpacked { x: 543, y: 432, z: 321 }, d: 210 } // lldb-command:print packedInPackedWithDrop -// lldb-check:[...]$4 = PackedInPackedWithDrop { a: 11, b: Packed { x: 22, y: 33, z: 44 }, c: 55, d: Packed { x: 66, y: 77, z: 88 } } +// lldbg-check:[...]$4 = PackedInPackedWithDrop { a: 11, b: Packed { x: 22, y: 33, z: 44 }, c: 55, d: Packed { x: 66, y: 77, z: 88 } } +// lldbr-check:(packed_struct_with_destructor::PackedInPackedWithDrop) packedInPackedWithDrop = PackedInPackedWithDrop { a: 11, b: Packed { x: 22, y: 33, z: 44 }, c: 55, d: Packed { x: 66, y: 77, z: 88 } } // lldb-command:print packedInUnpackedWithDrop -// lldb-check:[...]$5 = PackedInUnpackedWithDrop { a: -11, b: Packed { x: -22, y: -33, z: -44 }, c: -55, d: Packed { x: -66, y: -77, z: -88 } } +// lldbg-check:[...]$5 = PackedInUnpackedWithDrop { a: -11, b: Packed { x: -22, y: -33, z: -44 }, c: -55, d: Packed { x: -66, y: -77, z: -88 } } +// lldbr-check:(packed_struct_with_destructor::PackedInUnpackedWithDrop) packedInUnpackedWithDrop = PackedInUnpackedWithDrop { a: -11, b: Packed { x: -22, y: -33, z: -44 }, c: -55, d: Packed { x: -66, y: -77, z: -88 } } // lldb-command:print unpackedInPackedWithDrop -// lldb-check:[...]$6 = UnpackedInPackedWithDrop { a: 98, b: Unpacked { x: 87, y: 76, z: 65 }, c: Unpacked { x: 54, y: 43, z: 32 }, d: 21 } +// lldbg-check:[...]$6 = UnpackedInPackedWithDrop { a: 98, b: Unpacked { x: 87, y: 76, z: 65 }, c: Unpacked { x: 54, y: 43, z: 32 }, d: 21 } +// lldbr-check:(packed_struct_with_destructor::UnpackedInPackedWithDrop) unpackedInPackedWithDrop = UnpackedInPackedWithDrop { a: 98, b: Unpacked { x: 87, y: 76, z: 65 }, c: Unpacked { x: 54, y: 43, z: 32 }, d: 21 } // lldb-command:print deeplyNested -// lldb-check:[...]$7 = DeeplyNested { a: PackedInPacked { a: 1, b: Packed { x: 2, y: 3, z: 4 }, c: 5, d: Packed { x: 6, y: 7, z: 8 } }, b: UnpackedInPackedWithDrop { a: 9, b: Unpacked { x: 10, y: 11, z: 12 }, c: Unpacked { x: 13, y: 14, z: 15 }, d: 16 }, c: PackedInUnpacked { a: 17, b: Packed { x: 18, y: 19, z: 20 }, c: 21, d: Packed { x: 22, y: 23, z: 24 } }, d: PackedInUnpackedWithDrop { a: 25, b: Packed { x: 26, y: 27, z: 28 }, c: 29, d: Packed { x: 30, y: 31, z: 32 } }, e: UnpackedInPacked { a: 33, b: Unpacked { x: 34, y: 35, z: 36 }, c: Unpacked { x: 37, y: 38, z: 39 }, d: 40 }, f: PackedInPackedWithDrop { a: 41, b: Packed { x: 42, y: 43, z: 44 }, c: 45, d: Packed { x: 46, y: 47, z: 48 } } } +// lldbg-check:[...]$7 = DeeplyNested { a: PackedInPacked { a: 1, b: Packed { x: 2, y: 3, z: 4 }, c: 5, d: Packed { x: 6, y: 7, z: 8 } }, b: UnpackedInPackedWithDrop { a: 9, b: Unpacked { x: 10, y: 11, z: 12 }, c: Unpacked { x: 13, y: 14, z: 15 }, d: 16 }, c: PackedInUnpacked { a: 17, b: Packed { x: 18, y: 19, z: 20 }, c: 21, d: Packed { x: 22, y: 23, z: 24 } }, d: PackedInUnpackedWithDrop { a: 25, b: Packed { x: 26, y: 27, z: 28 }, c: 29, d: Packed { x: 30, y: 31, z: 32 } }, e: UnpackedInPacked { a: 33, b: Unpacked { x: 34, y: 35, z: 36 }, c: Unpacked { x: 37, y: 38, z: 39 }, d: 40 }, f: PackedInPackedWithDrop { a: 41, b: Packed { x: 42, y: 43, z: 44 }, c: 45, d: Packed { x: 46, y: 47, z: 48 } } } +// lldbr-check:(packed_struct_with_destructor::DeeplyNested) deeplyNested = DeeplyNested { a: PackedInPacked { a: 1, b: Packed { x: 2, y: 3, z: 4 }, c: 5, d: Packed { x: 6, y: 7, z: 8 } }, b: UnpackedInPackedWithDrop { a: 9, b: Unpacked { x: 10, y: 11, z: 12 }, c: Unpacked { x: 13, y: 14, z: 15 }, d: 16 }, c: PackedInUnpacked { a: 17, b: Packed { x: 18, y: 19, z: 20 }, c: 21, d: Packed { x: 22, y: 23, z: 24 } }, d: PackedInUnpackedWithDrop { a: 25, b: Packed { x: 26, y: 27, z: 28 }, c: 29, d: Packed { x: 30, y: 31, z: 32 } }, e: UnpackedInPacked { a: 33, b: Unpacked { x: 34, y: 35, z: 36 }, c: Unpacked { x: 37, y: 38, z: 39 }, d: 40 }, f: PackedInPackedWithDrop { a: 41, b: Packed { x: 42, y: 43, z: 44 }, c: 45, d: Packed { x: 46, y: 47, z: 48 } } } #![allow(unused_variables)] diff --git a/src/test/debuginfo/packed-struct.rs b/src/test/debuginfo/packed-struct.rs index 16e6371a9c0a9..2ed3711fbde80 100644 --- a/src/test/debuginfo/packed-struct.rs +++ b/src/test/debuginfo/packed-struct.rs @@ -46,22 +46,28 @@ // lldb-command:run // lldb-command:print packed -// lldb-check:[...]$0 = Packed { x: 123, y: 234, z: 345 } +// lldbg-check:[...]$0 = Packed { x: 123, y: 234, z: 345 } +// lldbr-check:(packed_struct::Packed) packed = Packed { x: 123, y: 234, z: 345 } // lldb-command:print packedInPacked -// lldb-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } +// lldbg-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } +// lldbr-check:(packed_struct::PackedInPacked) packedInPacked = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } } // lldb-command:print packedInUnpacked -// lldb-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } +// lldbg-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } +// lldbr-check:(packed_struct::PackedInUnpacked) packedInUnpacked = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } } // lldb-command:print unpackedInPacked -// lldb-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654, w: 543 }, c: Unpacked { x: 432, y: 321, z: 210, w: 109 }, d: -98 } +// lldbg-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654, w: 543 }, c: Unpacked { x: 432, y: 321, z: 210, w: 109 }, d: -98 } +// lldbr-check:(packed_struct::UnpackedInPacked) unpackedInPacked = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654, w: 543 }, c: Unpacked { x: 432, y: 321, z: 210, w: 109 }, d: -98 } // lldb-command:print sizeof(packed) -// lldb-check:[...]$4 = 14 +// lldbg-check:[...]$4 = 14 +// lldbr-check:(usize) = 14 // lldb-command:print sizeof(packedInPacked) -// lldb-check:[...]$5 = 40 +// lldbg-check:[...]$5 = 40 +// lldbr-check:(usize) = 40 #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/self-in-default-method.rs b/src/test/debuginfo/self-in-default-method.rs index 796d122cd66ba..a9acaab7dfc06 100644 --- a/src/test/debuginfo/self-in-default-method.rs +++ b/src/test/debuginfo/self-in-default-method.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct { x: 100 } +// lldbg-check:[...]$0 = Struct { x: 100 } +// lldbr-check:(self_in_default_method::Struct) *self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = -2 +// lldbg-check:[...]$2 = -2 +// lldbr-check:(isize) arg2 = -2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct { x: 100 } +// lldbg-check:[...]$3 = Struct { x: 100 } +// lldbr-check:(self_in_default_method::Struct) self = Struct { x: 100 } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(isize) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 200 } +// lldbg-check:[...]$6 = Struct { x: 200 } +// lldbr-check:(self_in_default_method::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(isize) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 200 } +// lldbg-check:[...]$9 = Struct { x: 200 } +// lldbr-check:(self_in_default_method::Struct) self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(isize) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 200 } +// lldbg-check:[...]$12 = Struct { x: 200 } +// lldbr-check:(self_in_default_method::Struct) *self = Struct { x: 200 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10 +// lldbg-check:[...]$14 = -10 +// lldbr-check:(isize) arg2 = -10 // lldb-command:continue #![feature(box_syntax)] diff --git a/src/test/debuginfo/self-in-generic-default-method.rs b/src/test/debuginfo/self-in-generic-default-method.rs index b07d7ca5fb7b7..2613300b8d996 100644 --- a/src/test/debuginfo/self-in-generic-default-method.rs +++ b/src/test/debuginfo/self-in-generic-default-method.rs @@ -73,47 +73,62 @@ // STACK BY REF // lldb-command:print *self -// lldb-check:[...]$0 = Struct { x: 987 } +// lldbg-check:[...]$0 = Struct { x: 987 } +// lldbr-check:(self_in_generic_default_method::Struct) *self = Struct { x: 987 } // lldb-command:print arg1 -// lldb-check:[...]$1 = -1 +// lldbg-check:[...]$1 = -1 +// lldbr-check:(isize) arg1 = -1 // lldb-command:print arg2 -// lldb-check:[...]$2 = 2 +// lldbg-check:[...]$2 = 2 +// lldbr-check:(u16) arg2 = 2 // lldb-command:continue // STACK BY VAL // lldb-command:print self -// lldb-check:[...]$3 = Struct { x: 987 } +// lldbg-check:[...]$3 = Struct { x: 987 } +// lldbr-check:(self_in_generic_default_method::Struct) self = Struct { x: 987 } // lldb-command:print arg1 -// lldb-check:[...]$4 = -3 +// lldbg-check:[...]$4 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$5 = -4 +// lldbg-check:[...]$5 = -4 +// lldbr-check:(i16) arg2 = -4 // lldb-command:continue // OWNED BY REF // lldb-command:print *self -// lldb-check:[...]$6 = Struct { x: 879 } +// lldbg-check:[...]$6 = Struct { x: 879 } +// lldbr-check:(self_in_generic_default_method::Struct) *self = Struct { x: 879 } // lldb-command:print arg1 -// lldb-check:[...]$7 = -5 +// lldbg-check:[...]$7 = -5 +// lldbr-check:(isize) arg1 = -5 // lldb-command:print arg2 -// lldb-check:[...]$8 = -6 +// lldbg-check:[...]$8 = -6 +// lldbr-check:(i32) arg2 = -6 // lldb-command:continue // OWNED BY VAL // lldb-command:print self -// lldb-check:[...]$9 = Struct { x: 879 } +// lldbg-check:[...]$9 = Struct { x: 879 } +// lldbr-check:(self_in_generic_default_method::Struct) self = Struct { x: 879 } // lldb-command:print arg1 -// lldb-check:[...]$10 = -7 +// lldbg-check:[...]$10 = -7 +// lldbr-check:(isize) arg1 = -7 // lldb-command:print arg2 -// lldb-check:[...]$11 = -8 +// lldbg-check:[...]$11 = -8 +// lldbr-check:(i64) arg2 = -8 // lldb-command:continue // OWNED MOVED // lldb-command:print *self -// lldb-check:[...]$12 = Struct { x: 879 } +// lldbg-check:[...]$12 = Struct { x: 879 } +// lldbr-check:(self_in_generic_default_method::Struct) *self = Struct { x: 879 } // lldb-command:print arg1 -// lldb-check:[...]$13 = -9 +// lldbg-check:[...]$13 = -9 +// lldbr-check:(isize) arg1 = -9 // lldb-command:print arg2 -// lldb-check:[...]$14 = -10.5 +// lldbg-check:[...]$14 = -10.5 +// lldbr-check:(f32) arg2 = -10.5 // lldb-command:continue #![feature(box_syntax)] diff --git a/src/test/debuginfo/shadowed-argument.rs b/src/test/debuginfo/shadowed-argument.rs index baf782b7e678a..49d876d4530b9 100644 --- a/src/test/debuginfo/shadowed-argument.rs +++ b/src/test/debuginfo/shadowed-argument.rs @@ -40,21 +40,27 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:print y -// lldb-check:[...]$1 = true +// lldbg-check:[...]$1 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 10 +// lldbg-check:[...]$2 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:print y -// lldb-check:[...]$3 = true +// lldbg-check:[...]$3 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = 10.5 +// lldbg-check:[...]$4 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:print y -// lldb-check:[...]$5 = 20 +// lldbg-check:[...]$5 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue diff --git a/src/test/debuginfo/shadowed-variable.rs b/src/test/debuginfo/shadowed-variable.rs index 6e4d94d26cdeb..3a8f6d3b70d16 100644 --- a/src/test/debuginfo/shadowed-variable.rs +++ b/src/test/debuginfo/shadowed-variable.rs @@ -50,33 +50,43 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:print y -// lldb-check:[...]$1 = true +// lldbg-check:[...]$1 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 10 +// lldbg-check:[...]$2 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:print y -// lldb-check:[...]$3 = true +// lldbg-check:[...]$3 = true +// lldbr-check:(bool) y = true // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = 10.5 +// lldbg-check:[...]$4 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:print y -// lldb-check:[...]$5 = 20 +// lldbg-check:[...]$5 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$6 = 10.5 +// lldbg-check:[...]$6 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:print y -// lldb-check:[...]$7 = 20 +// lldbg-check:[...]$7 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$8 = 11.5 +// lldbg-check:[...]$8 = 11.5 +// lldbr-check:(f64) x = 11.5 // lldb-command:print y -// lldb-check:[...]$9 = 20 +// lldbg-check:[...]$9 = 20 +// lldbr-check:(i32) y = 20 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/simple-lexical-scope.rs b/src/test/debuginfo/simple-lexical-scope.rs index 5f9a4fd080534..935a0bb2ae443 100644 --- a/src/test/debuginfo/simple-lexical-scope.rs +++ b/src/test/debuginfo/simple-lexical-scope.rs @@ -50,31 +50,38 @@ // lldb-command:run // lldb-command:print x -// lldb-check:[...]$0 = false +// lldbg-check:[...]$0 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$1 = false +// lldbg-check:[...]$1 = false +// lldbr-check:(bool) x = false // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$2 = 10 +// lldbg-check:[...]$2 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$3 = 10 +// lldbg-check:[...]$3 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$4 = 10.5 +// lldbg-check:[...]$4 = 10.5 +// lldbr-check:(f64) x = 10.5 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$5 = 10 +// lldbg-check:[...]$5 = 10 +// lldbr-check:(i32) x = 10 // lldb-command:continue // lldb-command:print x -// lldb-check:[...]$6 = false +// lldbg-check:[...]$6 = false +// lldbr-check:(bool) x = false // lldb-command:continue diff --git a/src/test/debuginfo/simple-struct.rs b/src/test/debuginfo/simple-struct.rs index 8fdf204d30ab5..e27324fe33066 100644 --- a/src/test/debuginfo/simple-struct.rs +++ b/src/test/debuginfo/simple-struct.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // min-lldb-version: 310 // ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155 @@ -108,22 +110,28 @@ // lldb-command:run // lldb-command:print no_padding16 -// lldb-check:[...]$0 = NoPadding16 { x: 10000, y: -10001 } +// lldbg-check:[...]$0 = NoPadding16 { x: 10000, y: -10001 } +// lldbr-check:(simple_struct::NoPadding16) no_padding16 = NoPadding16 { x: 10000, y: -10001 } // lldb-command:print no_padding32 -// lldb-check:[...]$1 = NoPadding32 { x: -10002, y: -10003.5, z: 10004 } +// lldbg-check:[...]$1 = NoPadding32 { x: -10002, y: -10003.5, z: 10004 } +// lldbr-check:(simple_struct::NoPadding32) no_padding32 = NoPadding32 { x: -10002, y: -10003.5, z: 10004 } // lldb-command:print no_padding64 -// lldb-check:[...]$2 = NoPadding64 { x: -10005.5, y: 10006, z: 10007 } +// lldbg-check:[...]$2 = NoPadding64 { x: -10005.5, y: 10006, z: 10007 } +// lldbr-check:(simple_struct::NoPadding64) no_padding64 = NoPadding64 { x: -10005.5, y: 10006, z: 10007 } // lldb-command:print no_padding163264 -// lldb-check:[...]$3 = NoPadding163264 { a: -10008, b: 10009, c: 10010, d: 10011 } +// lldbg-check:[...]$3 = NoPadding163264 { a: -10008, b: 10009, c: 10010, d: 10011 } +// lldbr-check:(simple_struct::NoPadding163264) no_padding163264 = NoPadding163264 { a: -10008, b: 10009, c: 10010, d: 10011 } // lldb-command:print internal_padding -// lldb-check:[...]$4 = InternalPadding { x: 10012, y: -10013 } +// lldbg-check:[...]$4 = InternalPadding { x: 10012, y: -10013 } +// lldbr-check:(simple_struct::InternalPadding) internal_padding = InternalPadding { x: 10012, y: -10013 } // lldb-command:print padding_at_end -// lldb-check:[...]$5 = PaddingAtEnd { x: -10014, y: 10015 } +// lldbg-check:[...]$5 = PaddingAtEnd { x: -10014, y: 10015 } +// lldbr-check:(simple_struct::PaddingAtEnd) padding_at_end = PaddingAtEnd { x: -10014, y: 10015 } #![allow(unused_variables)] #![allow(dead_code)] diff --git a/src/test/debuginfo/simple-tuple.rs b/src/test/debuginfo/simple-tuple.rs index 8f69672c88844..ea0fd4e37fd42 100644 --- a/src/test/debuginfo/simple-tuple.rs +++ b/src/test/debuginfo/simple-tuple.rs @@ -110,21 +110,28 @@ // lldb-command:run // lldb-command:print/d noPadding8 -// lldb-check:[...]$0 = (-100, 100) +// lldbg-check:[...]$0 = (-100, 100) +// lldbr-check:((i8, u8)) noPadding8 = { = -100 -100 = 100 100 } // lldb-command:print noPadding16 -// lldb-check:[...]$1 = (0, 1, 2) +// lldbg-check:[...]$1 = (0, 1, 2) +// lldbr-check:((i16, i16, u16)) noPadding16 = { = 0 = 1 = 2 } // lldb-command:print noPadding32 -// lldb-check:[...]$2 = (3, 4.5, 5) +// lldbg-check:[...]$2 = (3, 4.5, 5) +// lldbr-check:((i32, f32, u32)) noPadding32 = { = 3 = 4.5 = 5 } // lldb-command:print noPadding64 -// lldb-check:[...]$3 = (6, 7.5, 8) +// lldbg-check:[...]$3 = (6, 7.5, 8) +// lldbr-check:((i64, f64, u64)) noPadding64 = { = 6 = 7.5 = 8 } // lldb-command:print internalPadding1 -// lldb-check:[...]$4 = (9, 10) +// lldbg-check:[...]$4 = (9, 10) +// lldbr-check:((i16, i32)) internalPadding1 = { = 9 = 10 } // lldb-command:print internalPadding2 -// lldb-check:[...]$5 = (11, 12, 13, 14) +// lldbg-check:[...]$5 = (11, 12, 13, 14) +// lldbr-check:((i16, i32, u32, u64)) internalPadding2 = { = 11 = 12 = 13 = 14 } // lldb-command:print paddingAtEnd -// lldb-check:[...]$6 = (15, 16) +// lldbg-check:[...]$6 = (15, 16) +// lldbr-check:((i32, i16)) paddingAtEnd = { = 15 = 16 } #![allow(unused_variables)] #![allow(dead_code)] diff --git a/src/test/debuginfo/static-method-on-struct-and-enum.rs b/src/test/debuginfo/static-method-on-struct-and-enum.rs index dab4ab515d995..75a67c6b84bce 100644 --- a/src/test/debuginfo/static-method-on-struct-and-enum.rs +++ b/src/test/debuginfo/static-method-on-struct-and-enum.rs @@ -39,18 +39,23 @@ // STRUCT // lldb-command:print arg1 -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) arg1 = 1 // lldb-command:print arg2 -// lldb-check:[...]$1 = 2 +// lldbg-check:[...]$1 = 2 +// lldbr-check:(isize) arg2 = 2 // lldb-command:continue // ENUM // lldb-command:print arg1 -// lldb-check:[...]$2 = -3 +// lldbg-check:[...]$2 = -3 +// lldbr-check:(isize) arg1 = -3 // lldb-command:print arg2 -// lldb-check:[...]$3 = 4.5 +// lldbg-check:[...]$3 = 4.5 +// lldbr-check:(f64) arg2 = 4.5 // lldb-command:print arg3 -// lldb-check:[...]$4 = 5 +// lldbg-check:[...]$4 = 5 +// lldbr-check:(usize) arg3 = 5 // lldb-command:continue #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/struct-in-struct.rs b/src/test/debuginfo/struct-in-struct.rs index 46524cf1d029a..129500860c82f 100644 --- a/src/test/debuginfo/struct-in-struct.rs +++ b/src/test/debuginfo/struct-in-struct.rs @@ -35,28 +35,36 @@ // lldb-command:run // lldb-command:print three_simple_structs -// lldb-check:[...]$0 = ThreeSimpleStructs { x: Simple { x: 1 }, y: Simple { x: 2 }, z: Simple { x: 3 } } +// lldbg-check:[...]$0 = ThreeSimpleStructs { x: Simple { x: 1 }, y: Simple { x: 2 }, z: Simple { x: 3 } } +// lldbr-check:(struct_in_struct::ThreeSimpleStructs) three_simple_structs = ThreeSimpleStructs { x: Simple { x: 1 }, y: Simple { x: 2 }, z: Simple { x: 3 } } // lldb-command:print internal_padding_parent -// lldb-check:[...]$1 = InternalPaddingParent { x: InternalPadding { x: 4, y: 5 }, y: InternalPadding { x: 6, y: 7 }, z: InternalPadding { x: 8, y: 9 } } +// lldbg-check:[...]$1 = InternalPaddingParent { x: InternalPadding { x: 4, y: 5 }, y: InternalPadding { x: 6, y: 7 }, z: InternalPadding { x: 8, y: 9 } } +// lldbr-check:(struct_in_struct::InternalPaddingParent) internal_padding_parent = InternalPaddingParent { x: InternalPadding { x: 4, y: 5 }, y: InternalPadding { x: 6, y: 7 }, z: InternalPadding { x: 8, y: 9 } } // lldb-command:print padding_at_end_parent -// lldb-check:[...]$2 = PaddingAtEndParent { x: PaddingAtEnd { x: 10, y: 11 }, y: PaddingAtEnd { x: 12, y: 13 }, z: PaddingAtEnd { x: 14, y: 15 } } +// lldbg-check:[...]$2 = PaddingAtEndParent { x: PaddingAtEnd { x: 10, y: 11 }, y: PaddingAtEnd { x: 12, y: 13 }, z: PaddingAtEnd { x: 14, y: 15 } } +// lldbr-check:(struct_in_struct::PaddingAtEndParent) padding_at_end_parent = PaddingAtEndParent { x: PaddingAtEnd { x: 10, y: 11 }, y: PaddingAtEnd { x: 12, y: 13 }, z: PaddingAtEnd { x: 14, y: 15 } } // lldb-command:print mixed -// lldb-check:[...]$3 = Mixed { x: PaddingAtEnd { x: 16, y: 17 }, y: InternalPadding { x: 18, y: 19 }, z: Simple { x: 20 }, w: 21 } +// lldbg-check:[...]$3 = Mixed { x: PaddingAtEnd { x: 16, y: 17 }, y: InternalPadding { x: 18, y: 19 }, z: Simple { x: 20 }, w: 21 } +// lldbr-check:(struct_in_struct::Mixed) mixed = Mixed { x: PaddingAtEnd { x: 16, y: 17 }, y: InternalPadding { x: 18, y: 19 }, z: Simple { x: 20 }, w: 21 } // lldb-command:print bag -// lldb-check:[...]$4 = Bag { x: Simple { x: 22 } } +// lldbg-check:[...]$4 = Bag { x: Simple { x: 22 } } +// lldbr-check:(struct_in_struct::Bag) bag = Bag { x: Simple { x: 22 } } // lldb-command:print bag_in_bag -// lldb-check:[...]$5 = BagInBag { x: Bag { x: Simple { x: 23 } } } +// lldbg-check:[...]$5 = BagInBag { x: Bag { x: Simple { x: 23 } } } +// lldbr-check:(struct_in_struct::BagInBag) bag_in_bag = BagInBag { x: Bag { x: Simple { x: 23 } } } // lldb-command:print tjo -// lldb-check:[...]$6 = ThatsJustOverkill { x: BagInBag { x: Bag { x: Simple { x: 24 } } } } +// lldbg-check:[...]$6 = ThatsJustOverkill { x: BagInBag { x: Bag { x: Simple { x: 24 } } } } +// lldbr-check:(struct_in_struct::ThatsJustOverkill) tjo = ThatsJustOverkill { x: BagInBag { x: Bag { x: Simple { x: 24 } } } } // lldb-command:print tree -// lldb-check:[...]$7 = Tree { x: Simple { x: 25 }, y: InternalPaddingParent { x: InternalPadding { x: 26, y: 27 }, y: InternalPadding { x: 28, y: 29 }, z: InternalPadding { x: 30, y: 31 } }, z: BagInBag { x: Bag { x: Simple { x: 32 } } } } +// lldbg-check:[...]$7 = Tree { x: Simple { x: 25 }, y: InternalPaddingParent { x: InternalPadding { x: 26, y: 27 }, y: InternalPadding { x: 28, y: 29 }, z: InternalPadding { x: 30, y: 31 } }, z: BagInBag { x: Bag { x: Simple { x: 32 } } } } +// lldbr-check:(struct_in_struct::Tree) tree = Tree { x: Simple { x: 25 }, y: InternalPaddingParent { x: InternalPadding { x: 26, y: 27 }, y: InternalPadding { x: 28, y: 29 }, z: InternalPadding { x: 30, y: 31 } }, z: BagInBag { x: Bag { x: Simple { x: 32 } } } } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/struct-namespace.rs b/src/test/debuginfo/struct-namespace.rs index 3fd4cf57b2a80..efa415c7100b8 100644 --- a/src/test/debuginfo/struct-namespace.rs +++ b/src/test/debuginfo/struct-namespace.rs @@ -16,14 +16,18 @@ // lldb-command:run // lldb-command:p struct1 -// lldb-check:(struct_namespace::Struct1) $0 = [...] +// lldbg-check:(struct_namespace::Struct1) $0 = [...] +// lldbr-check:(struct_namespace::Struct1) struct1 = Struct1 { a: 0, b: 1 } // lldb-command:p struct2 -// lldb-check:(struct_namespace::Struct2) $1 = [...] +// lldbg-check:(struct_namespace::Struct2) $1 = [...] +// lldbr-check:(struct_namespace::Struct2) struct2 = { = 2 } // lldb-command:p mod1_struct1 -// lldb-check:(struct_namespace::mod1::Struct1) $2 = [...] +// lldbg-check:(struct_namespace::mod1::Struct1) $2 = [...] +// lldbr-check:(struct_namespace::mod1::Struct1) mod1_struct1 = Struct1 { a: 3, b: 4 } // lldb-command:p mod1_struct2 -// lldb-check:(struct_namespace::mod1::Struct2) $3 = [...] +// lldbg-check:(struct_namespace::mod1::Struct2) $3 = [...] +// lldbr-check:(struct_namespace::mod1::Struct2) mod1_struct2 = { = 5 } #![allow(unused_variables)] #![allow(dead_code)] diff --git a/src/test/debuginfo/struct-style-enum.rs b/src/test/debuginfo/struct-style-enum.rs index b156a3be699e3..36cd85fb4dc65 100644 --- a/src/test/debuginfo/struct-style-enum.rs +++ b/src/test/debuginfo/struct-style-enum.rs @@ -41,16 +41,20 @@ // lldb-command:run // lldb-command:print case1 -// lldb-check:[...]$0 = Case1 { a: 0, b: 31868, c: 31868, d: 31868, e: 31868 } +// lldbg-check:[...]$0 = Case1 { a: 0, b: 31868, c: 31868, d: 31868, e: 31868 } +// lldbr-check:(struct_style_enum::Regular::Case1) case1 = { a = 0 b = 31868 c = 31868 d = 31868 e = 31868 } // lldb-command:print case2 -// lldb-check:[...]$1 = Case2 { a: 0, b: 286331153, c: 286331153 } +// lldbg-check:[...]$1 = Case2 { a: 0, b: 286331153, c: 286331153 } +// lldbr-check:(struct_style_enum::Regular::Case2) case2 = Case2 { struct_style_enum::Regular::Case1: 0, struct_style_enum::Regular::Case2: 286331153, struct_style_enum::Regular::Case3: 286331153 } // lldb-command:print case3 -// lldb-check:[...]$2 = Case3 { a: 0, b: 6438275382588823897 } +// lldbg-check:[...]$2 = Case3 { a: 0, b: 6438275382588823897 } +// lldbr-check:(struct_style_enum::Regular::Case3) case3 = Case3 { struct_style_enum::Regular::Case1: 0, struct_style_enum::Regular::Case2: 6438275382588823897 } // lldb-command:print univariant -// lldb-check:[...]$3 = TheOnlyCase { a: -1 } +// lldbg-check:[...]$3 = TheOnlyCase { a: -1 } +// lldbr-check:(struct_style_enum::Univariant) univariant = Univariant { struct_style_enum::TheOnlyCase: TheOnlyCase { a: -1 } } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/struct-with-destructor.rs b/src/test/debuginfo/struct-with-destructor.rs index ab935a07d650f..f7722bb377531 100644 --- a/src/test/debuginfo/struct-with-destructor.rs +++ b/src/test/debuginfo/struct-with-destructor.rs @@ -38,16 +38,20 @@ // lldb-command:run // lldb-command:print simple -// lldb-check:[...]$0 = WithDestructor { x: 10, y: 20 } +// lldbg-check:[...]$0 = WithDestructor { x: 10, y: 20 } +// lldbr-check:(struct_with_destructor::WithDestructor) simple = WithDestructor { x: 10, y: 20 } // lldb-command:print noDestructor -// lldb-check:[...]$1 = NoDestructorGuarded { a: NoDestructor { x: 10, y: 20 }, guard: -1 } +// lldbg-check:[...]$1 = NoDestructorGuarded { a: NoDestructor { x: 10, y: 20 }, guard: -1 } +// lldbr-check:(struct_with_destructor::NoDestructorGuarded) noDestructor = NoDestructorGuarded { a: NoDestructor { x: 10, y: 20 }, guard: -1 } // lldb-command:print withDestructor -// lldb-check:[...]$2 = WithDestructorGuarded { a: WithDestructor { x: 10, y: 20 }, guard: -1 } +// lldbg-check:[...]$2 = WithDestructorGuarded { a: WithDestructor { x: 10, y: 20 }, guard: -1 } +// lldbr-check:(struct_with_destructor::WithDestructorGuarded) withDestructor = WithDestructorGuarded { a: WithDestructor { x: 10, y: 20 }, guard: -1 } // lldb-command:print nested -// lldb-check:[...]$3 = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } } +// lldbg-check:[...]$3 = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } } +// lldbr-check:(struct_with_destructor::NestedOuter) nested = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/tuple-in-tuple.rs b/src/test/debuginfo/tuple-in-tuple.rs index 4ebc740b9c0f7..79335a3d0e139 100644 --- a/src/test/debuginfo/tuple-in-tuple.rs +++ b/src/test/debuginfo/tuple-in-tuple.rs @@ -46,21 +46,28 @@ // lldb-command:run // lldb-command:print no_padding1 -// lldb-check:[...]$0 = ((0, 1), 2, 3) +// lldbg-check:[...]$0 = ((0, 1), 2, 3) +// lldbr-check:(((u32, u32), u32, u32)) no_padding1 = { = { = 0 = 1 } = 2 = 3 } // lldb-command:print no_padding2 -// lldb-check:[...]$1 = (4, (5, 6), 7) +// lldbg-check:[...]$1 = (4, (5, 6), 7) +// lldbr-check:((u32, (u32, u32), u32)) no_padding2 = { = 4 = { = 5 = 6 } = 7 } // lldb-command:print no_padding3 -// lldb-check:[...]$2 = (8, 9, (10, 11)) +// lldbg-check:[...]$2 = (8, 9, (10, 11)) +// lldbr-check:((u32, u32, (u32, u32))) no_padding3 = { = 8 = 9 = { = 10 = 11 } } // lldb-command:print internal_padding1 -// lldb-check:[...]$3 = (12, (13, 14)) +// lldbg-check:[...]$3 = (12, (13, 14)) +// lldbr-check:((i16, (i32, i32))) internal_padding1 = { = 12 = { = 13 = 14 } } // lldb-command:print internal_padding2 -// lldb-check:[...]$4 = (15, (16, 17)) +// lldbg-check:[...]$4 = (15, (16, 17)) +// lldbr-check:((i16, (i16, i32))) internal_padding2 = { = 15 = { = 16 = 17 } } // lldb-command:print padding_at_end1 -// lldb-check:[...]$5 = (18, (19, 20)) +// lldbg-check:[...]$5 = (18, (19, 20)) +// lldbr-check:((i32, (i32, i16))) padding_at_end1 = { = 18 = { = 19 = 20 } } // lldb-command:print padding_at_end2 -// lldb-check:[...]$6 = ((21, 22), 23) +// lldbg-check:[...]$6 = ((21, 22), 23) +// lldbr-check:(((i32, i16), i32)) padding_at_end2 = { = { = 21 = 22 } = 23 } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/tuple-struct.rs b/src/test/debuginfo/tuple-struct.rs index aa644d8419b54..def48c84488dc 100644 --- a/src/test/debuginfo/tuple-struct.rs +++ b/src/test/debuginfo/tuple-struct.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // min-lldb-version: 310 // compile-flags:-g @@ -46,22 +48,28 @@ // lldb-command:run // lldb-command:print no_padding16 -// lldb-check:[...]$0 = NoPadding16(10000, -10001) +// lldbg-check:[...]$0 = NoPadding16(10000, -10001) +// lldbr-check:(tuple_struct::NoPadding16) no_padding16 = { = 10000 = -10001 } // lldb-command:print no_padding32 -// lldb-check:[...]$1 = NoPadding32(-10002, -10003.5, 10004) +// lldbg-check:[...]$1 = NoPadding32(-10002, -10003.5, 10004) +// lldbr-check:(tuple_struct::NoPadding32) no_padding32 = { = -10002 = -10003.5 = 10004 } // lldb-command:print no_padding64 -// lldb-check:[...]$2 = NoPadding64(-10005.5, 10006, 10007) +// lldbg-check:[...]$2 = NoPadding64(-10005.5, 10006, 10007) +// lldbr-check:(tuple_struct::NoPadding64) no_padding64 = { = -10005.5 = 10006 = 10007 } // lldb-command:print no_padding163264 -// lldb-check:[...]$3 = NoPadding163264(-10008, 10009, 10010, 10011) +// lldbg-check:[...]$3 = NoPadding163264(-10008, 10009, 10010, 10011) +// lldbr-check:(tuple_struct::NoPadding163264) no_padding163264 = { = -10008 = 10009 = 10010 = 10011 } // lldb-command:print internal_padding -// lldb-check:[...]$4 = InternalPadding(10012, -10013) +// lldbg-check:[...]$4 = InternalPadding(10012, -10013) +// lldbr-check:(tuple_struct::InternalPadding) internal_padding = { = 10012 = -10013 } // lldb-command:print padding_at_end -// lldb-check:[...]$5 = PaddingAtEnd(-10014, 10015) +// lldbg-check:[...]$5 = PaddingAtEnd(-10014, 10015) +// lldbr-check:(tuple_struct::PaddingAtEnd) padding_at_end = { = -10014 = 10015 } // This test case mainly makes sure that no field names are generated for tuple structs (as opposed // to all fields having the name ""). Otherwise they are handled the same a normal diff --git a/src/test/debuginfo/tuple-style-enum.rs b/src/test/debuginfo/tuple-style-enum.rs index f36153d1f5c5a..682e74601b0a1 100644 --- a/src/test/debuginfo/tuple-style-enum.rs +++ b/src/test/debuginfo/tuple-style-enum.rs @@ -41,16 +41,20 @@ // lldb-command:run // lldb-command:print case1 -// lldb-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868) +// lldbg-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868) +// lldbr-check:(tuple_style_enum::Regular::Case1) case1 = { = 0 = 31868 = 31868 = 31868 = 31868 } // lldb-command:print case2 -// lldb-check:[...]$1 = Case2(0, 286331153, 286331153) +// lldbg-check:[...]$1 = Case2(0, 286331153, 286331153) +// lldbr-check:(tuple_style_enum::Regular::Case2) case2 = Case2 { tuple_style_enum::Regular::Case1: 0, tuple_style_enum::Regular::Case2: 286331153, tuple_style_enum::Regular::Case3: 286331153 } // lldb-command:print case3 -// lldb-check:[...]$2 = Case3(0, 6438275382588823897) +// lldbg-check:[...]$2 = Case3(0, 6438275382588823897) +// lldbr-check:(tuple_style_enum::Regular::Case3) case3 = Case3 { tuple_style_enum::Regular::Case1: 0, tuple_style_enum::Regular::Case2: 6438275382588823897 } // lldb-command:print univariant -// lldb-check:[...]$3 = TheOnlyCase(-1) +// lldbg-check:[...]$3 = TheOnlyCase(-1) +// lldbr-check:(tuple_style_enum::Univariant) univariant = { tuple_style_enum::TheOnlyCase = { = -1 } } #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/union-smoke.rs b/src/test/debuginfo/union-smoke.rs index 622c7cf0d3334..7772127bad295 100644 --- a/src/test/debuginfo/union-smoke.rs +++ b/src/test/debuginfo/union-smoke.rs @@ -29,9 +29,13 @@ // lldb-command:run // lldb-command:print u -// lldb-check:[...]$0 = U { a: ('\x02', '\x02'), b: 514 } -// lldb-command:print union_smoke::SU -// lldb-check:[...]$1 = U { a: ('\x01', '\x01'), b: 257 } +// lldbg-check:[...]$0 = U { a: ('\x02', '\x02'), b: 514 } +// lldbr-check:(union_smoke::U) u = { a = { = 2 = 2 } b = 514 } + +// Don't test this with rust-enabled lldb for now; see +// https://github.com/rust-lang-nursery/lldb/issues/18 +// lldbg-command:print union_smoke::SU +// lldbg-check:[...]$1 = U { a: ('\x01', '\x01'), b: 257 } #![allow(unused)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/unique-enum.rs b/src/test/debuginfo/unique-enum.rs index 5a99de7779cff..6b62c30451394 100644 --- a/src/test/debuginfo/unique-enum.rs +++ b/src/test/debuginfo/unique-enum.rs @@ -36,13 +36,16 @@ // lldb-command:run // lldb-command:print *the_a -// lldb-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 } +// lldbg-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 } +// lldbr-check:(unique_enum::ABC::TheA) *the_a = TheA { unique_enum::ABC::TheA: 0, unique_enum::ABC::TheB: 8970181431921507452 } // lldb-command:print *the_b -// lldb-check:[...]$1 = TheB(0, 286331153, 286331153) +// lldbg-check:[...]$1 = TheB(0, 286331153, 286331153) +// lldbr-check:(unique_enum::ABC::TheB) *the_b = { = 0 = 286331153 = 286331153 } // lldb-command:print *univariant -// lldb-check:[...]$2 = TheOnlyCase(123234) +// lldbg-check:[...]$2 = TheOnlyCase(123234) +// lldbr-check:(unique_enum::Univariant) *univariant = { unique_enum::TheOnlyCase = { = 123234 } } #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/var-captured-in-nested-closure.rs b/src/test/debuginfo/var-captured-in-nested-closure.rs index b9a1d73b6d869..02c836bb6ac47 100644 --- a/src/test/debuginfo/var-captured-in-nested-closure.rs +++ b/src/test/debuginfo/var-captured-in-nested-closure.rs @@ -54,31 +54,43 @@ // lldb-command:run // lldb-command:print variable -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) variable = 1 // lldb-command:print constant -// lldb-check:[...]$1 = 2 +// lldbg-check:[...]$1 = 2 +// lldbr-check:(isize) constant = 2 // lldb-command:print a_struct -// lldb-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_nested_closure::Struct) a_struct = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *struct_ref -// lldb-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_nested_closure::Struct) *struct_ref = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *owned -// lldb-check:[...]$4 = 6 +// lldbg-check:[...]$4 = 6 +// lldbr-check:(isize) *owned = 6 // lldb-command:print closure_local -// lldb-check:[...]$5 = 8 +// lldbg-check:[...]$5 = 8 +// lldbr-check:(isize) closure_local = 8 // lldb-command:continue // lldb-command:print variable -// lldb-check:[...]$6 = 1 +// lldbg-check:[...]$6 = 1 +// lldbr-check:(isize) variable = 1 // lldb-command:print constant -// lldb-check:[...]$7 = 2 +// lldbg-check:[...]$7 = 2 +// lldbr-check:(isize) constant = 2 // lldb-command:print a_struct -// lldb-check:[...]$8 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$8 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_nested_closure::Struct) a_struct = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *struct_ref -// lldb-check:[...]$9 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$9 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_nested_closure::Struct) *struct_ref = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *owned -// lldb-check:[...]$10 = 6 +// lldbg-check:[...]$10 = 6 +// lldbr-check:(isize) *owned = 6 // lldb-command:print closure_local -// lldb-check:[...]$11 = 8 +// lldbg-check:[...]$11 = 8 +// lldbr-check:(isize) closure_local = 8 // lldb-command:continue #![allow(unused_variables)] diff --git a/src/test/debuginfo/var-captured-in-sendable-closure.rs b/src/test/debuginfo/var-captured-in-sendable-closure.rs index 9aeb3bc91336a..a562584dfd028 100644 --- a/src/test/debuginfo/var-captured-in-sendable-closure.rs +++ b/src/test/debuginfo/var-captured-in-sendable-closure.rs @@ -34,11 +34,14 @@ // lldb-command:run // lldb-command:print constant -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) constant = 1 // lldb-command:print a_struct -// lldb-check:[...]$1 = Struct { a: -2, b: 3.5, c: 4 } +// lldbg-check:[...]$1 = Struct { a: -2, b: 3.5, c: 4 } +// lldbr-check:(var_captured_in_sendable_closure::Struct) a_struct = Struct { a: -2, b: 3.5, c: 4 } // lldb-command:print *owned -// lldb-check:[...]$2 = 5 +// lldbg-check:[...]$2 = 5 +// lldbr-check:(isize) *owned = 5 #![allow(unused_variables)] #![feature(box_syntax)] diff --git a/src/test/debuginfo/var-captured-in-stack-closure.rs b/src/test/debuginfo/var-captured-in-stack-closure.rs index c795a095b9769..cf4eaf393e956 100644 --- a/src/test/debuginfo/var-captured-in-stack-closure.rs +++ b/src/test/debuginfo/var-captured-in-stack-closure.rs @@ -50,28 +50,38 @@ // lldb-command:run // lldb-command:print variable -// lldb-check:[...]$0 = 1 +// lldbg-check:[...]$0 = 1 +// lldbr-check:(isize) variable = 1 // lldb-command:print constant -// lldb-check:[...]$1 = 2 +// lldbg-check:[...]$1 = 2 +// lldbr-check:(isize) constant = 2 // lldb-command:print a_struct -// lldb-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_stack_closure::Struct) a_struct = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *struct_ref -// lldb-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_stack_closure::Struct) *struct_ref = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *owned -// lldb-check:[...]$4 = 6 +// lldbg-check:[...]$4 = 6 +// lldbr-check:(isize) *owned = 6 // lldb-command:continue // lldb-command:print variable -// lldb-check:[...]$5 = 2 +// lldbg-check:[...]$5 = 2 +// lldbr-check:(isize) variable = 2 // lldb-command:print constant -// lldb-check:[...]$6 = 2 +// lldbg-check:[...]$6 = 2 +// lldbr-check:(isize) constant = 2 // lldb-command:print a_struct -// lldb-check:[...]$7 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$7 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_stack_closure::Struct) a_struct = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *struct_ref -// lldb-check:[...]$8 = Struct { a: -3, b: 4.5, c: 5 } +// lldbg-check:[...]$8 = Struct { a: -3, b: 4.5, c: 5 } +// lldbr-check:(var_captured_in_stack_closure::Struct) *struct_ref = Struct { a: -3, b: 4.5, c: 5 } // lldb-command:print *owned -// lldb-check:[...]$9 = 6 +// lldbg-check:[...]$9 = 6 +// lldbr-check:(isize) *owned = 6 #![feature(box_syntax)] #![allow(unused_variables)] diff --git a/src/test/debuginfo/vec-slices.rs b/src/test/debuginfo/vec-slices.rs index 888d9b28506b3..39bf0c175ebcb 100644 --- a/src/test/debuginfo/vec-slices.rs +++ b/src/test/debuginfo/vec-slices.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-tidy-linelength + // ignore-windows // ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155 // min-lldb-version: 310 @@ -80,22 +82,28 @@ // lldb-command:run // lldb-command:print empty -// lldb-check:[...]$0 = &[] +// lldbg-check:[...]$0 = &[] +// lldbr-check:(&[i64]) empty = &[] // lldb-command:print singleton -// lldb-check:[...]$1 = &[1] +// lldbg-check:[...]$1 = &[1] +// lldbr-check:(&[i64]) singleton = &[1] // lldb-command:print multiple -// lldb-check:[...]$2 = &[2, 3, 4, 5] +// lldbg-check:[...]$2 = &[2, 3, 4, 5] +// lldbr-check:(&[i64]) multiple = &[2, 3, 4, 5] // lldb-command:print slice_of_slice -// lldb-check:[...]$3 = &[3, 4] +// lldbg-check:[...]$3 = &[3, 4] +// lldbr-check:(&[i64]) slice_of_slice = &[3, 4] // lldb-command:print padded_tuple -// lldb-check:[...]$4 = &[(6, 7), (8, 9)] +// lldbg-check:[...]$4 = &[(6, 7), (8, 9)] +// lldbr-check:(&[(i32, i16)]) padded_tuple = { data_ptr = *0x555555554ff0 length = 2 } // lldb-command:print padded_struct -// lldb-check:[...]$5 = &[AStruct { x: 10, y: 11, z: 12 }, AStruct { x: 13, y: 14, z: 15 }] +// lldbg-check:[...]$5 = &[AStruct { x: 10, y: 11, z: 12 }, AStruct { x: 13, y: 14, z: 15 }] +// lldbr-check:(&[vec_slices::AStruct]) padded_struct = &[AStruct { x: 10, y: 11, z: 12 }, AStruct { x: 13, y: 14, z: 15 }] #![allow(dead_code, unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/test/debuginfo/vec.rs b/src/test/debuginfo/vec.rs index dba947530fea8..752f3f1cba1ec 100644 --- a/src/test/debuginfo/vec.rs +++ b/src/test/debuginfo/vec.rs @@ -28,7 +28,8 @@ // lldb-command:run // lldb-command:print a -// lldb-check:[...]$0 = [1, 2, 3] +// lldbg-check:[...]$0 = [1, 2, 3] +// lldbr-check:([i32; 3]) a = [1, 2, 3] #![allow(unused_variables)] #![feature(omit_gdb_pretty_printer_section)] diff --git a/src/tools/clippy b/src/tools/clippy index e69fe2fb19b7b..c47b9489ab4f2 160000 --- a/src/tools/clippy +++ b/src/tools/clippy @@ -1 +1 @@ -Subproject commit e69fe2fb19b7b2f3b07fe1178c536810dabf896f +Subproject commit c47b9489ab4f2124e2e93a3b1ec8a2eeafe54cf4 diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index a4d839275c3eb..7006fb9427e1c 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -205,6 +205,9 @@ pub struct Config { /// Version of LLDB pub lldb_version: Option, + /// Whether LLDB has native rust support + pub lldb_native_rust: bool, + /// Version of LLVM pub llvm_version: Option, diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 8829d8808366b..688f2babe6e8c 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -133,6 +133,8 @@ impl EarlyProps { // Ignore if actual version is smaller the minimum required // version lldb_version_to_int(actual_version) < lldb_version_to_int(min_version) + } else if line.starts_with("rust-lldb") && !config.lldb_native_rust { + true } else { false } diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 2fa459bec9455..f46e031d768bd 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -282,6 +282,7 @@ pub fn parse_config(args: Vec) -> Config { let android_cross_path = opt_path(matches, "android-cross-path"); let (gdb, gdb_version, gdb_native_rust) = analyze_gdb(matches.opt_str("gdb"), &target, &android_cross_path); + let (lldb_version, lldb_native_rust) = extract_lldb_version(matches.opt_str("lldb-version")); let color = match matches.opt_str("color").as_ref().map(|x| &**x) { Some("auto") | None => ColorConfig::AutoColor, @@ -326,7 +327,8 @@ pub fn parse_config(args: Vec) -> Config { gdb, gdb_version, gdb_native_rust, - lldb_version: extract_lldb_version(matches.opt_str("lldb-version")), + lldb_version, + lldb_native_rust, llvm_version: matches.opt_str("llvm-version"), system_llvm: matches.opt_present("system-llvm"), android_cross_path: android_cross_path, @@ -906,17 +908,27 @@ fn extract_gdb_version(full_version_line: &str) -> Option { None } -fn extract_lldb_version(full_version_line: Option) -> Option { +/// Returns (LLDB version, LLDB is rust-enabled) +fn extract_lldb_version(full_version_line: Option) -> (Option, bool) { // Extract the major LLDB version from the given version string. // LLDB version strings are different for Apple and non-Apple platforms. - // At the moment, this function only supports the Apple variant, which looks - // like this: + // The Apple variant looks like this: // // LLDB-179.5 (older versions) // lldb-300.2.51 (new versions) // // We are only interested in the major version number, so this function // will return `Some("179")` and `Some("300")` respectively. + // + // Upstream versions look like: + // lldb version 6.0.1 + // + // There doesn't seem to be a way to correlate the Apple version + // with the upstream version, and since the tests were originally + // written against Apple versions, we make a fake Apple version by + // multiplying the first number by 100. This is a hack, but + // normally fine because the only non-Apple version we test is + // rust-enabled. if let Some(ref full_version_line) = full_version_line { if !full_version_line.trim().is_empty() { @@ -951,12 +963,22 @@ fn extract_lldb_version(full_version_line: Option) -> Option { .take_while(|c| c.is_digit(10)) .collect::(); if !vers.is_empty() { - return Some(vers); + return (Some(vers), full_version_line.contains("rust-enabled")); + } + } + + if full_version_line.starts_with("lldb version ") { + let vers = full_version_line[13..] + .chars() + .take_while(|c| c.is_digit(10)) + .collect::(); + if !vers.is_empty() { + return (Some(vers + "00"), full_version_line.contains("rust-enabled")); } } } } - None + (None, false) } fn is_blacklisted_lldb_version(version: &str) -> bool { diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 63a282c227c24..4cb6f6b83bdd1 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -945,13 +945,23 @@ impl<'test> TestCx<'test> { } } + let prefixes = if self.config.lldb_native_rust { + static PREFIXES: &'static [&'static str] = &["lldb", "lldbr"]; + println!("NOTE: compiletest thinks it is using LLDB with native rust support"); + PREFIXES + } else { + static PREFIXES: &'static [&'static str] = &["lldb", "lldbg"]; + println!("NOTE: compiletest thinks it is using LLDB without native rust support"); + PREFIXES + }; + // Parse debugger commands etc from test files let DebuggerCommands { commands, check_lines, breakpoint_lines, .. - } = self.parse_debugger_commands(&["lldb"]); + } = self.parse_debugger_commands(prefixes); // Write debugger script: // We don't want to hang when calling `quit` while the process is still running diff --git a/src/tools/lldb b/src/tools/lldb index 7728fa22bebea..2a643a26aaab2 160000 --- a/src/tools/lldb +++ b/src/tools/lldb @@ -1 +1 @@ -Subproject commit 7728fa22bebea288abfea3b70cf795c60b93df3a +Subproject commit 2a643a26aaab2d6c281eb7a4db7d4d8f29e9eeff diff --git a/src/tools/rustc-workspace-hack/Cargo.toml b/src/tools/rustc-workspace-hack/Cargo.toml index 755b172dd1b2c..e8e812e70faa3 100644 --- a/src/tools/rustc-workspace-hack/Cargo.toml +++ b/src/tools/rustc-workspace-hack/Cargo.toml @@ -47,3 +47,7 @@ features = [ "wincon", "wincrypt", ] + +[dependencies.serde_json] +version = "1.0.31" +features = ["raw_value"] \ No newline at end of file