Skip to content

Commit d623668

Browse files
Move DebuggerVisualizerFile types from rustc_span to rustc_middle
1 parent a7d4880 commit d623668

File tree

15 files changed

+60
-48
lines changed

15 files changed

+60
-48
lines changed

compiler/rustc_codegen_llvm/src/debuginfo/gdb.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ use rustc_ast::attr;
99
use rustc_codegen_ssa::base::collect_debugger_visualizers_transitive;
1010
use rustc_codegen_ssa::traits::*;
1111
use rustc_hir::def_id::LOCAL_CRATE;
12-
use rustc_middle::bug;
12+
use rustc_middle::{bug, middle::debugger_visualizer::DebuggerVisualizerType};
1313
use rustc_session::config::{CrateType, DebugInfo};
1414
use rustc_span::symbol::sym;
15-
use rustc_span::DebuggerVisualizerType;
1615

1716
/// Inserts a side-effect free instruction sequence that makes sure that the
1817
/// .debug_gdb_scripts global is referenced, so it isn't removed by the linker.

compiler/rustc_codegen_ssa/src/back/link.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use rustc_fs_util::fix_windows_verbatim_for_gcc;
99
use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};
1010
use rustc_metadata::find_native_static_library;
1111
use rustc_metadata::fs::{emit_wrapper_file, METADATA_FILENAME};
12+
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
1213
use rustc_middle::middle::dependency_format::Linkage;
1314
use rustc_middle::middle::exported_symbols::SymbolExportKind;
1415
use rustc_session::config::{self, CFGuard, CrateType, DebugInfo, LdImpl, Strip};
@@ -21,7 +22,6 @@ use rustc_session::utils::NativeLibKind;
2122
/// need out of the shared crate context before we get rid of it.
2223
use rustc_session::{filesearch, Session};
2324
use rustc_span::symbol::Symbol;
24-
use rustc_span::DebuggerVisualizerFile;
2525
use rustc_target::spec::crt_objects::{CrtObjects, LinkSelfContainedDefault};
2626
use rustc_target::spec::{Cc, LinkOutputKind, LinkerFlavor, LinkerFlavorCli, Lld, PanicStrategy};
2727
use rustc_target::spec::{RelocModel, RelroLevel, SanitizerSet, SplitDebuginfo};

compiler/rustc_codegen_ssa/src/base.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use rustc_hir::def_id::{DefId, LOCAL_CRATE};
2323
use rustc_hir::lang_items::LangItem;
2424
use rustc_metadata::EncodedMetadata;
2525
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs;
26+
use rustc_middle::middle::debugger_visualizer::{DebuggerVisualizerFile, DebuggerVisualizerType};
2627
use rustc_middle::middle::exported_symbols;
2728
use rustc_middle::middle::exported_symbols::SymbolExportKind;
2829
use rustc_middle::middle::lang_items;
@@ -35,7 +36,6 @@ use rustc_session::config::{self, CrateType, EntryFnType, OutputType};
3536
use rustc_session::Session;
3637
use rustc_span::symbol::sym;
3738
use rustc_span::Symbol;
38-
use rustc_span::{DebuggerVisualizerFile, DebuggerVisualizerType};
3939
use rustc_target::abi::{Align, FIRST_VARIANT};
4040

4141
use std::collections::BTreeSet;

compiler/rustc_codegen_ssa/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
2828
use rustc_fluent_macro::fluent_messages;
2929
use rustc_hir::def_id::CrateNum;
3030
use rustc_middle::dep_graph::WorkProduct;
31+
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
3132
use rustc_middle::middle::dependency_format::Dependencies;
3233
use rustc_middle::middle::exported_symbols::SymbolExportKind;
3334
use rustc_middle::query::{ExternProviders, Providers};
@@ -37,7 +38,6 @@ use rustc_session::config::{CrateType, OutputFilenames, OutputType, RUST_CGU_EXT
3738
use rustc_session::cstore::{self, CrateSource};
3839
use rustc_session::utils::NativeLibKind;
3940
use rustc_span::symbol::Symbol;
40-
use rustc_span::DebuggerVisualizerFile;
4141
use std::collections::BTreeSet;
4242
use std::io;
4343
use std::path::{Path, PathBuf};

compiler/rustc_metadata/src/rmeta/decoder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use rustc_hir::definitions::{DefKey, DefPath, DefPathData, DefPathHash};
1818
use rustc_hir::diagnostic_items::DiagnosticItems;
1919
use rustc_index::{Idx, IndexVec};
2020
use rustc_middle::metadata::ModChild;
21+
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
2122
use rustc_middle::middle::exported_symbols::{ExportedSymbol, SymbolExportInfo};
2223
use rustc_middle::mir::interpret::{AllocDecodingSession, AllocDecodingState};
2324
use rustc_middle::ty::codec::TyDecoder;
@@ -961,7 +962,7 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
961962
.decode((self, sess))
962963
}
963964

964-
fn get_debugger_visualizers(self) -> Vec<rustc_span::DebuggerVisualizerFile> {
965+
fn get_debugger_visualizers(self) -> Vec<DebuggerVisualizerFile> {
965966
self.root.debugger_visualizers.decode(self).collect::<Vec<_>>()
966967
}
967968

compiler/rustc_metadata/src/rmeta/encoder.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use rustc_hir::definitions::DefPathData;
1919
use rustc_hir::intravisit::{self, Visitor};
2020
use rustc_hir::lang_items::LangItem;
2121
use rustc_middle::hir::nested_filter;
22+
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
2223
use rustc_middle::middle::dependency_format::Linkage;
2324
use rustc_middle::middle::exported_symbols::{
2425
metadata_symbol_name, ExportedSymbol, SymbolExportInfo,
@@ -36,9 +37,7 @@ use rustc_session::config::{CrateType, OptLevel};
3637
use rustc_session::cstore::{ForeignModule, LinkagePreference, NativeLib};
3738
use rustc_span::hygiene::{ExpnIndex, HygieneEncodeContext, MacroKind};
3839
use rustc_span::symbol::{sym, Symbol};
39-
use rustc_span::{
40-
self, DebuggerVisualizerFile, ExternalSource, FileName, SourceFile, Span, SyntaxContext,
41-
};
40+
use rustc_span::{self, ExternalSource, FileName, SourceFile, Span, SyntaxContext};
4241
use std::borrow::Borrow;
4342
use std::collections::hash_map::Entry;
4443
use std::hash::Hash;

compiler/rustc_metadata/src/rmeta/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::creader::CrateMetadataRef;
22
use decoder::Metadata;
33
use def_path_hash_map::DefPathHashMapRef;
44
use rustc_data_structures::fx::FxHashMap;
5+
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
56
use table::TableBuilder;
67

78
use rustc_ast as ast;
@@ -246,7 +247,7 @@ pub(crate) struct CrateRoot {
246247
proc_macro_data: Option<ProcMacroData>,
247248

248249
tables: LazyTables,
249-
debugger_visualizers: LazyArray<rustc_span::DebuggerVisualizerFile>,
250+
debugger_visualizers: LazyArray<DebuggerVisualizerFile>,
250251

251252
exported_symbols: LazyArray<(ExportedSymbol<'static>, SymbolExportInfo)>,
252253

compiler/rustc_middle/src/hir/map/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use crate::hir::{ModuleItems, Owner};
2+
use crate::middle::debugger_visualizer::DebuggerVisualizerFile;
23
use crate::query::LocalCrate;
34
use crate::ty::TyCtxt;
45
use rustc_ast as ast;
@@ -15,7 +16,7 @@ use rustc_index::Idx;
1516
use rustc_middle::hir::nested_filter;
1617
use rustc_span::def_id::StableCrateId;
1718
use rustc_span::symbol::{kw, sym, Ident, Symbol};
18-
use rustc_span::{DebuggerVisualizerFile, Span};
19+
use rustc_span::Span;
1920
use rustc_target::spec::abi::Abi;
2021

2122
#[inline]
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
use rustc_data_structures::sync::Lrc;
2+
use std::path::PathBuf;
3+
4+
#[derive(HashStable)]
5+
#[derive(Copy, PartialEq, PartialOrd, Clone, Ord, Eq, Hash, Debug, Encodable, Decodable)]
6+
pub enum DebuggerVisualizerType {
7+
Natvis,
8+
GdbPrettyPrinter,
9+
}
10+
11+
/// A single debugger visualizer file.
12+
#[derive(HashStable)]
13+
#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Encodable, Decodable)]
14+
pub struct DebuggerVisualizerFile {
15+
/// The complete debugger visualizer source.
16+
pub src: Lrc<[u8]>,
17+
/// Indicates which visualizer type this targets.
18+
pub visualizer_type: DebuggerVisualizerType,
19+
/// The file path to the visualizer file. This is used for reporting
20+
/// visualizer files in dep-info. Before it is written to crate metadata,
21+
/// the path is erased to `None`, so as not to emit potentially privacy
22+
/// sensitive data.
23+
pub path: Option<PathBuf>,
24+
}
25+
26+
impl DebuggerVisualizerFile {
27+
pub fn new(src: Lrc<[u8]>, visualizer_type: DebuggerVisualizerType, path: PathBuf) -> Self {
28+
DebuggerVisualizerFile { src, visualizer_type, path: Some(path) }
29+
}
30+
31+
pub fn path_erased(&self) -> Self {
32+
DebuggerVisualizerFile {
33+
src: self.src.clone(),
34+
visualizer_type: self.visualizer_type,
35+
path: None,
36+
}
37+
}
38+
}

compiler/rustc_middle/src/middle/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
pub mod codegen_fn_attrs;
2+
pub mod debugger_visualizer;
23
pub mod dependency_format;
34
pub mod exported_symbols;
45
pub mod lang_items;

0 commit comments

Comments
 (0)