Remove the omit_gdb_pretty_printer_section attribute

Disabling loading of pretty printers in the debugger itself is more
reliable. Before this commit the .gdb_debug_scripts section couldn't be
included in dylibs or rlibs as otherwise there is no way to disable the
section anymore without recompiling the entire standard library.
This commit is contained in:
bjorn3
2025-07-31 14:56:49 +00:00
parent 6c02dd4eae
commit ae2f8d9216
120 changed files with 209 additions and 387 deletions

View File

@@ -374,11 +374,3 @@ impl<S: Stage> CombineAttributeParser<S> for TargetFeatureParser {
features
}
}
pub(crate) struct OmitGdbPrettyPrinterSectionParser;
impl<S: Stage> NoArgsAttributeParser<S> for OmitGdbPrettyPrinterSectionParser {
const PATH: &[Symbol] = &[sym::omit_gdb_pretty_printer_section];
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
const CREATE: fn(Span) -> AttributeKind = |_| AttributeKind::OmitGdbPrettyPrinterSection;
}

View File

@@ -17,9 +17,8 @@ use crate::attributes::allow_unstable::{
AllowConstFnUnstableParser, AllowInternalUnstableParser, UnstableFeatureBoundParser,
};
use crate::attributes::codegen_attrs::{
ColdParser, CoverageParser, ExportNameParser, NakedParser, NoMangleParser,
OmitGdbPrettyPrinterSectionParser, OptimizeParser, TargetFeatureParser, TrackCallerParser,
UsedParser,
ColdParser, CoverageParser, ExportNameParser, NakedParser, NoMangleParser, OptimizeParser,
TargetFeatureParser, TrackCallerParser, UsedParser,
};
use crate::attributes::confusables::ConfusablesParser;
use crate::attributes::deprecation::DeprecationParser;
@@ -187,7 +186,6 @@ attribute_parsers!(
Single<WithoutArgs<NoImplicitPreludeParser>>,
Single<WithoutArgs<NoMangleParser>>,
Single<WithoutArgs<NonExhaustiveParser>>,
Single<WithoutArgs<OmitGdbPrettyPrinterSectionParser>>,
Single<WithoutArgs<ParenSugarParser>>,
Single<WithoutArgs<PassByValueParser>>,
Single<WithoutArgs<PointeeParser>>,

View File

@@ -2,9 +2,7 @@
use rustc_codegen_ssa::base::collect_debugger_visualizers_transitive;
use rustc_codegen_ssa::traits::*;
use rustc_hir::attrs::AttributeKind;
use rustc_hir::def_id::LOCAL_CRATE;
use rustc_hir::find_attr;
use rustc_middle::bug;
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerType;
use rustc_session::config::{CrateType, DebugInfo};
@@ -86,9 +84,6 @@ pub(crate) fn get_or_insert_gdb_debug_scripts_section_global<'ll>(
}
pub(crate) fn needs_gdb_debug_scripts_section(cx: &CodegenCx<'_, '_>) -> bool {
let omit_gdb_pretty_printer_section =
find_attr!(cx.tcx.hir_krate_attrs(), AttributeKind::OmitGdbPrettyPrinterSection);
// To ensure the section `__rustc_debug_gdb_scripts_section__` will not create
// ODR violations at link time, this section will not be emitted for rlibs since
// each rlib could produce a different set of visualizers that would be embedded
@@ -117,8 +112,7 @@ pub(crate) fn needs_gdb_debug_scripts_section(cx: &CodegenCx<'_, '_>) -> bool {
}
});
!omit_gdb_pretty_printer_section
&& cx.sess().opts.debuginfo != DebugInfo::None
cx.sess().opts.debuginfo != DebugInfo::None
&& cx.sess().target.emit_debug_gdb_scripts
&& embed_visualizers
}

View File

@@ -1257,11 +1257,6 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[
TEST, rustc_dummy, Normal, template!(Word /* doesn't matter*/),
DuplicatesOk, EncodeCrossCrate::No
),
gated!(
omit_gdb_pretty_printer_section, Normal, template!(Word),
WarnFollowing, EncodeCrossCrate::No,
"the `#[omit_gdb_pretty_printer_section]` attribute is just used for the Rust test suite",
),
rustc_attr!(
TEST, pattern_complexity_limit, CrateLevel, template!(NameValueStr: "N"),
ErrorFollowing, EncodeCrossCrate::No,

View File

@@ -199,6 +199,8 @@ declare_features! (
/// Renamed to `dyn_compatible_for_dispatch`.
(removed, object_safe_for_dispatch, "1.83.0", Some(43561),
Some("renamed to `dyn_compatible_for_dispatch`"), 131511),
/// Allows using `#[omit_gdb_pretty_printer_section]`.
(removed, omit_gdb_pretty_printer_section, "CURRENT_RUSTC_VERSION", None, None, 144738),
/// Allows using `#[on_unimplemented(..)]` on traits.
/// (Moved to `rustc_attrs`.)
(removed, on_unimplemented, "1.40.0", None, None, 65794),

View File

@@ -225,8 +225,6 @@ declare_features! (
(unstable, multiple_supertrait_upcastable, "1.69.0", None),
/// Allow negative trait bounds. This is an internal-only feature for testing the trait solver!
(internal, negative_bounds, "1.71.0", None),
/// Allows using `#[omit_gdb_pretty_printer_section]`.
(internal, omit_gdb_pretty_printer_section, "1.5.0", None),
/// Set the maximum pattern complexity allowed (not limited by default).
(internal, pattern_complexity_limit, "1.78.0", None),
/// Allows using pattern types.

View File

@@ -391,9 +391,6 @@ pub enum AttributeKind {
/// Represents `#[non_exhaustive]`
NonExhaustive(Span),
/// Represents `#[omit_gdb_pretty_printer_section]`
OmitGdbPrettyPrinterSection,
/// Represents `#[optimize(size|speed)]`
Optimize(OptimizeAttr, Span),

View File

@@ -55,7 +55,6 @@ impl AttributeKind {
NoImplicitPrelude(..) => No,
NoMangle(..) => Yes, // Needed for rustdoc
NonExhaustive(..) => Yes, // Needed for rustdoc
OmitGdbPrettyPrinterSection => No,
Optimize(..) => No,
ParenSugar(..) => No,
PassByValue(..) => Yes,

View File

@@ -289,8 +289,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
| AttributeKind::MacroTransparency(_)
| AttributeKind::Pointee(..)
| AttributeKind::Dummy
| AttributeKind::RustcBuiltinMacro { .. }
| AttributeKind::OmitGdbPrettyPrinterSection,
| AttributeKind::RustcBuiltinMacro { .. },
) => { /* do nothing */ }
Attribute::Parsed(AttributeKind::AsPtr(attr_span)) => {
self.check_applied_to_fn_or_method(hir_id, *attr_span, span, target)

View File

@@ -298,6 +298,7 @@ See [Pretty-printer](compiletest.md#pretty-printer-tests).
- [`should-ice`](compiletest.md#incremental-tests) — incremental cfail should
ICE
- [`reference`] — an annotation linking to a rule in the reference
- `disable-gdb-pretty-printers` — disable gdb pretty printers for debuginfo tests
[`reference`]: https://github.com/rust-lang/reference/blob/master/docs/authoring.md#test-rule-annotations

View File

@@ -203,6 +203,8 @@ pub struct TestProps {
pub add_core_stubs: bool,
/// Whether line annotatins are required for the given error kind.
pub dont_require_annotations: HashSet<ErrorKind>,
/// Whether pretty printers should be disabled in gdb.
pub disable_gdb_pretty_printers: bool,
}
mod directives {
@@ -251,6 +253,7 @@ mod directives {
pub const ADD_CORE_STUBS: &'static str = "add-core-stubs";
// This isn't a real directive, just one that is probably mistyped often
pub const INCORRECT_COMPILER_FLAGS: &'static str = "compiler-flags";
pub const DISABLE_GDB_PRETTY_PRINTERS: &'static str = "disable-gdb-pretty-printers";
}
impl TestProps {
@@ -306,6 +309,7 @@ impl TestProps {
has_enzyme: false,
add_core_stubs: false,
dont_require_annotations: Default::default(),
disable_gdb_pretty_printers: false,
}
}
@@ -654,6 +658,12 @@ impl TestProps {
self.dont_require_annotations
.insert(ErrorKind::expect_from_user_str(err_kind.trim()));
}
config.set_name_directive(
ln,
DISABLE_GDB_PRETTY_PRINTERS,
&mut self.disable_gdb_pretty_printers,
);
},
);

View File

@@ -18,6 +18,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
"check-stdout",
"check-test-line-numbers-match",
"compile-flags",
"disable-gdb-pretty-printers",
"doc-flags",
"dont-check-compiler-stderr",
"dont-check-compiler-stdout",

View File

@@ -259,7 +259,9 @@ impl TestCx<'_> {
Some(version) => {
println!("NOTE: compiletest thinks it is using GDB version {}", version);
if version > extract_gdb_version("7.4").unwrap() {
if !self.props.disable_gdb_pretty_printers
&& version > extract_gdb_version("7.4").unwrap()
{
// Add the directory containing the pretty printers to
// GDB's script auto loading safe path
script_str.push_str(&format!(

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
// gdb-command:run
@@ -68,8 +69,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
trait TraitWithAssocType {
type Type;

View File

@@ -1,8 +1,6 @@
#![crate_type = "rlib"]
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
//@ no-prefer-dynamic
//@ compile-flags:-g

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// gdb-command:whatis basic_types_globals_metadata::B
@@ -35,8 +36,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
// N.B. These are `mut` only so they don't constant fold away.

View File

@@ -1,6 +1,7 @@
//@ revisions: lto no-lto
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
//@ [lto] compile-flags:-C lto
//@ [lto] no-prefer-dynamic
@@ -39,8 +40,6 @@
// gdb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
// N.B. These are `mut` only so they don't constant fold away.

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// gdb-command:whatis unit
@@ -53,8 +54,6 @@
// gdb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
fn main() {

View File

@@ -5,6 +5,7 @@
// its numerical value.
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
@@ -74,8 +75,6 @@
// gdb-check:$30 = 9.25
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
static mut B: bool = false;

View File

@@ -5,6 +5,7 @@
// its numerical value.
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -112,8 +113,6 @@
// cdb-check:s : [...] [Type: ref$<str$>]
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
fn main() {

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -96,8 +97,6 @@
// lldb-check:[...] 3.5
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
fn main() {

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -28,8 +29,6 @@
// lldb-check:[...] TheC
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
enum ABC { TheA, TheB, TheC }

View File

@@ -1,6 +1,7 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -28,8 +29,6 @@
// lldb-check:(borrowed_enum::Univariant) *univariant_ref = { value = { 0 = 4820353753753434 } }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
// the size of the discriminant value is machine dependent, this has be taken into account when

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -52,8 +53,6 @@
// lldb-check:[...] 26.5
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct SomeStruct {
x: isize,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -29,8 +30,6 @@
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let stack_val: (i16, f32) = (-14, -19f32);

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -100,8 +101,6 @@
// lldb-check:[...] 3.5
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
fn main() {

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -19,8 +20,6 @@
// lldb-check:[...] { 0 = 2 1 = 3.5 }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let a = Box::new(1);

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -22,8 +23,6 @@
// lldb-check:[...] { x = 77 y = 777 z = 7777 w = 77777 }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct StructWithSomePadding {
x: i16,

View File

@@ -1,6 +1,7 @@
//@ min-lldb-version: 1800
//@ min-gdb-version: 13.0
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
//@ ignore-windows-gnu: #128973
//@ ignore-aarch64-unknown-linux-gnu (gdb tries to read from 0x0; FIXME: #128973)
//@ ignore-powerpc64: #128973 on both -gnu and -musl
@@ -62,9 +63,6 @@
// lldb-check:[...] Case1 { x: 0, y: 8970181431921507452 }
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Clone)]
struct Struct {
a: isize,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -33,9 +34,6 @@
// lldb-check:[...] { 0 = 4444.5 1 = 5555 2 = 6666 3 = 7777.5 }
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
trait Trait {
fn method(self) -> Self;
}

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -51,8 +52,6 @@
// lldb-check:[...] { 0 = { a = OneHundred b = Vienna } 1 = 9 }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::AnEnum::{OneHundred, OneThousand, OneMillion};
use self::AnotherEnum::{MountainView, Toronto, Vienna};

View File

@@ -1,6 +1,7 @@
//@ ignore-aarch64
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -88,8 +89,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::AutoDiscriminant::{One, Two, Three};
use self::ManualDiscriminant::{OneHundred, OneThousand, OneMillion};

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -33,9 +34,6 @@
// lldb-check:[...] 110
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn some_generic_fun<T1, T2>(a: T1, b: T2) -> (T2, T1) {
let closure = |x, y| {

View File

@@ -1,8 +1,7 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
#![allow(dead_code, unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// This test makes sure that the compiler doesn't crash when trying to assign
// debug locations to const-expressions.

View File

@@ -1,8 +1,7 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
#![allow(dead_code, unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// This test makes sure that the compiler doesn't crash when trying to assign
// debug locations to 'constant' patterns in match expressions.

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -44,8 +45,7 @@
// lldb-command:v c
// lldb-check:(int) c = 6
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
#![omit_gdb_pretty_printer_section]
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::Coroutine;
use std::pin::Pin;

View File

@@ -5,6 +5,7 @@
// ensure that LLDB won't crash at least (like #57822).
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -53,8 +54,7 @@
// cdb-check: b : Returned [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
// cdb-check: [+0x[...]] _ref__a : 0x[...] : 6 [Type: int *]
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
#![omit_gdb_pretty_printer_section]
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::Coroutine;
use std::pin::Pin;

View File

@@ -1,15 +1,13 @@
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
//@ aux-build:cross_crate_spans.rs
extern crate cross_crate_spans;
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
// gdb-command:break cross_crate_spans.rs:14
// gdb-command:break cross_crate_spans.rs:12
// gdb-command:run
// gdb-command:print result
@@ -32,7 +30,7 @@ extern crate cross_crate_spans;
// === LLDB TESTS ==================================================================================
// lldb-command:b cross_crate_spans.rs:14
// lldb-command:b cross_crate_spans.rs:12
// lldb-command:run
// lldb-command:v result

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -299,8 +300,6 @@
#![allow(unused_variables)]
#![feature(box_patterns)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Univariant::Unit;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -141,8 +142,6 @@
#![allow(unused_variables)]
#![feature(box_patterns)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct {
x: i16,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -232,8 +233,6 @@
#![allow(unused_variables)]
#![feature(box_patterns)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Univariant::Unit;

View File

@@ -1,5 +1,6 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g -Z thinlto
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -16,8 +17,6 @@
// lldb-check:(enum_thinlto::ABC) *abc = { value = { x = 0 y = 8970181431921507452 } $discr$ = 0 }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
// the size of the discriminant value is machine dependent, this has be taken into account when

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -38,8 +39,6 @@
// lldb-check:[...] { x = { [0] = 22 [1] = 23 } y = { [0] = 24 [1] = 25 } }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct NoPadding1 {
x: [u32; 3],

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
// gdb-command:run
@@ -32,9 +33,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[no_mangle]
pub unsafe extern "C" fn fn_with_c_abi(s: *const u8, len: i32) -> i32 {

View File

@@ -8,6 +8,7 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g -Zmir-enable-passes=-SingleUseConsts
// SingleUseConsts shouldn't need to be disabled, see #128945
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -214,8 +215,6 @@
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn immediate_args(a: isize, b: bool, c: f64) {
zzz(); // #break

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -32,10 +33,6 @@
// lldb-check:[...] 3000
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
fun(111102, true);

View File

@@ -2,6 +2,7 @@
//@ min-gdb-version: 10.1
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -78,8 +79,6 @@
// cdb-check:[...] a!function_names::const_generic_fn_bool<false> (void)
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(adt_const_params, coroutines, coroutine_trait, stmt_expr_attributes)]
#![allow(incomplete_features)]

View File

@@ -4,6 +4,7 @@
//@ min-lldb-version: 1800
//@ ignore-gdb
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// lldb-command:breakpoint set --name immediate_args
// lldb-command:breakpoint set --name non_immediate_args
@@ -116,8 +117,6 @@
// lldb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn immediate_args(a: isize, b: bool, c: f64) {
()

View File

@@ -3,6 +3,7 @@
//@ min-gdb-version: 11.2
//@ compile-flags: -g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -11,8 +12,6 @@
// gdb-check:$1 = 97 'a'
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let ch: char = 'a';

View File

@@ -1,6 +1,7 @@
//@ ignore-lldb: FIXME(#27089)
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
// gdb-command:run
@@ -57,8 +58,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// This test case makes sure that we get correct type descriptions for the enum
// discriminant of different instantiations of the same generic enum type where,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -44,9 +45,6 @@
// lldb-check:[...] { a = 6 b = 7.5 }
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Clone)]
struct Struct {
a: isize,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -57,10 +58,6 @@
// lldb-check:[...] 2.5
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn outer<TA: Clone>(a: TA) {
inner(a.clone(), 1);
inner(a.clone(), 2.5f64);

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10.5
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct<T> {
x: T

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
@@ -19,9 +20,6 @@
// gdb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct {
x: isize
}

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:set print union on
// gdb-command:run
@@ -16,9 +17,6 @@
// gdb-check:$4 = generic_struct_style_enum::Univariant<i32>::TheOnlyCase{a: -1}
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Regular::{Case1, Case2, Case3};
use self::Univariant::TheOnlyCase;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -49,9 +50,6 @@
// cdb-check:[...]value [Type: generic_struct::AGenericStruct<i32,f64>]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct AGenericStruct<TKey, TValue> {
key: TKey,
value: TValue

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -30,8 +31,6 @@
// lldb-command:v univariant
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Regular::{Case1, Case2, Case3};
use self::Univariant::TheOnlyCase;

View File

@@ -2,6 +2,7 @@
// ^ test temporarily disabled as it fails under gdb 15
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// gdb-command:print string1.length
// gdb-check:$1 = 48
@@ -26,8 +27,6 @@
// lldb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// This test case makes sure that debug info does not ICE when include_str is
// used multiple times (see issue #11322).

View File

@@ -2,14 +2,13 @@
//@ ignore-aarch64
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// gdb-command:next
// gdb-check:[...]23[...]let s = Some(5).unwrap(); // #break
// gdb-check:[...]22[...]let s = Some(5).unwrap(); // #break
// gdb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// IF YOU MODIFY THIS FILE, BE CAREFUL TO ADAPT THE LINE NUMBERS IN THE DEBUGGER COMMANDS

View File

@@ -5,6 +5,7 @@
//@ ignore-gdb
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === LLDB TESTS ==================================================================================
// lldb-command:run
@@ -16,8 +17,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct ZeroSizedStruct;

View File

@@ -3,6 +3,7 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -24,8 +25,7 @@
// lldb-command:v b
// lldb-check:(issue_57822::main::{coroutine_env#3}) b = { value = { a = { value = { y = 2 } $discr$ = '\x02' } } $discr$ = '\x02' }
#![feature(omit_gdb_pretty_printer_section, coroutines, coroutine_trait, stmt_expr_attributes)]
#![omit_gdb_pretty_printer_section]
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
use std::ops::Coroutine;
use std::pin::Pin;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -73,9 +74,6 @@
// lldb-check:[...] 1000000
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let range = [1, 2, 3];

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -121,9 +122,6 @@
// lldb-check:[...] -1
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = 999;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -113,9 +114,6 @@
// lldb-check:[...] 232
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct {
x: isize,
y: isize

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -57,9 +58,6 @@
// lldb-check:[...] false
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = false;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -119,9 +120,6 @@
// lldb-check:[...] 2
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let mut x = 0;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -58,9 +59,6 @@
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = false;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -119,9 +120,6 @@
// lldb-check:[...] 2
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let mut x = 0;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -97,9 +98,6 @@
// lldb-check:[...] 400
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
macro_rules! trivial {
($e1:expr) => ($e1)
}

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -336,8 +337,6 @@
#![allow(unused_variables)]
#![allow(unused_assignments)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
static mut MUT_INT: isize = 0;

View File

@@ -1,6 +1,7 @@
//@ ignore-lldb
//@ compile-flags:-C debuginfo=1
//@ disable-gdb-pretty-printers
// Make sure functions have proper names
// gdb-command:info functions
@@ -18,8 +19,6 @@
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct {
a: i64,

View File

@@ -2,6 +2,7 @@
//@ min-gdb-version: 13.0
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
//@ ignore-windows-gnu: #128973
@@ -104,9 +105,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
enum Enum {
Variant1 { x: u16, y: u16 },

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct<T> {
x: T

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct {
x: isize

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct {
x: isize

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct TupleStruct(isize, f64);

View File

@@ -2,6 +2,7 @@
// compiled with multiple codegen units. (see #39160)
//@ compile-flags:-g -Ccodegen-units=2
//@ disable-gdb-pretty-printers
// === GDB TESTS ===============================================================
@@ -29,9 +30,6 @@
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
mod a {
pub fn foo(xxx: u32) {
super::_zzz(); // #break

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -32,8 +33,6 @@
// lldb-check:[...] 30303
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn function_one() {
let abc = 10101;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -32,8 +33,6 @@
// lldb-check:[...] 30303
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn function_one() {
let a = 10101;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -81,9 +82,6 @@
// lldb-check:[...] 20
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = false;
let y = true;

View File

@@ -2,6 +2,7 @@
//@ min-gdb-version: 13.0
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -69,9 +70,6 @@
// lldb-check:[...] Nope
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
// If a struct has exactly two variants, one of them is empty, and the other one
// contains a non-nullable pointer, then this value is used as the discriminator.
// The test cases in this file make sure that something readable is generated for

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -60,8 +61,6 @@
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[repr(packed)]
struct Packed {

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -46,8 +47,6 @@
// lldb-check:[...] 40
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[repr(packed)]
struct Packed {

View File

@@ -1,14 +1,13 @@
//@ ignore-lldb
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// Test whether compiling a recursive enum definition crashes debug info generation. The test case
// is taken from issue #11083 and #135093.
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
pub struct Window<'a> {
callbacks: WindowCallbacks<'a>

View File

@@ -1,6 +1,7 @@
//@ ignore-lldb
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
@@ -58,8 +59,6 @@
// gdb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Opt::{Empty, Val};
use std::boxed::Box as B;

View File

@@ -3,6 +3,7 @@
// and leaves codegen to create a ladder of allocations so as `*a == b`.
//
//@ compile-flags:-g -Zmir-enable-passes=+ReferencePropagation,-ConstDebugInfo
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -106,8 +107,6 @@
// lldb-check:[...] 3.5
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(f16)]
fn main() {

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct {
x: isize

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -99,9 +100,6 @@
// lldb-check:[...] -10.5
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#[derive(Copy, Clone)]
struct Struct {
x: isize

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -46,9 +47,6 @@
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn a_function(x: bool, y: bool) {
zzz(); // #break
sentinel();

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -68,9 +69,6 @@
// lldb-check:[...] 20
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = false;
let y = true;

View File

@@ -7,6 +7,7 @@
//@ ignore-s390x
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// gdb-command:run
// gdb-command:print vi8x16
@@ -35,8 +36,6 @@
// gdb-command:continue
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
#![feature(repr_simd)]
#[repr(simd)]

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -66,9 +67,6 @@
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
fn main() {
let x = false;

View File

@@ -1,4 +1,5 @@
//@ compile-flags: -g -Zmir-enable-passes=-CheckAlignment
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -84,8 +85,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct NoPadding16 {
x: u16,

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -121,8 +122,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
static mut NO_PADDING_8: (i8, u8) = (-50, 50);
static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -41,9 +42,6 @@
// lldb-check:[...] 5
// lldb-command:continue
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct {
x: isize
}

View File

@@ -2,6 +2,7 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
// gdb-command:run
@@ -40,8 +41,6 @@
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
pub struct Foo<'a> {
inner: &'a str,

View File

@@ -1,6 +1,7 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -30,8 +31,6 @@
// lldb-check:[...] TheOnlyCase(Struct { x: 123, y: 456, z: 789 })
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Regular::{Case1, Case2};
use self::Univariant::TheOnlyCase;

View File

@@ -1,4 +1,5 @@
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -43,8 +44,6 @@
// lldb-check:[...] { x = { x = 25 } y = { x = { x = 26 y = 27 } y = { x = 28 y = 29 } z = { x = 30 y = 31 } } z = { x = { x = { x = 32 } } } }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Simple {
x: i32

View File

@@ -1,5 +1,6 @@
//@ ignore-gdb
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// Check that structs get placed in the correct namespace
@@ -16,8 +17,6 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
struct Struct1 {
a: u32,

View File

@@ -1,5 +1,6 @@
//@ min-lldb-version: 1800
//@ compile-flags:-g
//@ disable-gdb-pretty-printers
// === GDB TESTS ===================================================================================
@@ -36,8 +37,6 @@
// lldb-check:(struct_style_enum::Univariant) univariant = { value = { a = -1 } }
#![allow(unused_variables)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]
use self::Regular::{Case1, Case2, Case3};
use self::Univariant::TheOnlyCase;

Some files were not shown because too many files have changed in this diff Show More