}
fn enum_data(&mut self, data: EnumData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
}
fn extern_crate(&mut self, data: ExternCrateData) {
- let id = data.id.to_string();
+ let id = data.id.index.as_u32().to_string();
let crate_num = data.crate_num.to_string();
- let scope = data.scope.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("name", &data.name),
}
fn impl_data(&mut self, data: ImplData) {
- let id = data.id.to_string();
- let ref_id = data.self_ref.unwrap_or(Id::null()).to_string();
- let trait_id = data.trait_ref.unwrap_or(Id::null()).to_string();
- let scope = data.scope.to_string();
+ let self_ref = data.self_ref.unwrap_or(null_def_id());
+ let trait_ref = data.trait_ref.unwrap_or(null_def_id());
+
+ let id = data.id.index.as_u32().to_string();
+ let ref_id = self_ref.index.as_usize().to_string();
+ let ref_id_crate = self_ref.krate.to_string();
+ let trait_id = trait_ref.index.as_usize().to_string();
+ let trait_id_crate = trait_ref.krate.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("refid", &ref_id),
+ ("refidcrate", &ref_id_crate),
("traitid", &trait_id),
+ ("traitidcrate", &trait_id_crate),
("scopeid", &scope)
]);
}
fn inheritance(&mut self, data: InheritanceData) {
- let base_id = data.base_id.to_string();
- let deriv_id = data.deriv_id.to_string();
- let values = make_values_str(&[
- ("base", &base_id),
- ("derived", &deriv_id),
- ]);
+ let base_id = data.base_id.index.as_usize().to_string();
+ let base_crate = data.base_id.krate.to_string();
+ let deriv_id = data.deriv_id.index.as_u32().to_string();
+ let deriv_crate = data.deriv_id.krate.to_string();
+ let values = make_values_str(&[
+ ("base", &base_id),
+ ("basecrate", &base_crate),
+ ("derived", &deriv_id),
+ ("derivedcrate", &deriv_crate)
+ ]);
self.record("inheritance", data.span, values);
}
fn function(&mut self, data: FunctionData) {
- let id = data.id.to_string();
- let decl_id = data.declaration.unwrap_or(Id::null()).to_string();
- let scope = data.scope.to_string();
+ let (decl_id, decl_crate) = match data.declaration {
+ Some(id) => (id.index.as_usize().to_string(), id.krate.to_string()),
+ None => (String::new(), String::new())
+ };
+
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
("declid", &decl_id),
+ ("declidcrate", &decl_crate),
("scopeid", &scope)
]);
}
fn function_ref(&mut self, data: FunctionRefData) {
- let ref_id = data.ref_id.to_string();
- let scope = data.scope.to_string();
+ let ref_id = data.ref_id.index.as_usize().to_string();
+ let ref_crate = data.ref_id.krate.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("qualname", ""),
("scopeid", &scope)
]);
}
fn function_call(&mut self, data: FunctionCallData) {
- let ref_id = data.ref_id.to_string();
+ let ref_id = data.ref_id.index.as_usize().to_string();
+ let ref_crate = data.ref_id.krate.to_string();
let qualname = String::new();
- let scope = data.scope.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("qualname", &qualname),
("scopeid", &scope)
]);
}
fn method(&mut self, data: MethodData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
}
fn method_call(&mut self, data: MethodCallData) {
- let decl_id = data.decl_id.unwrap_or(Id::null()).to_string();
- let ref_id = data.ref_id.unwrap_or(Id::null()).to_string();
- let scope = data.scope.to_string();
+ let (dcn, dck) = match data.decl_id {
+ Some(declid) => (declid.index.as_usize().to_string(), declid.krate.to_string()),
+ None => (String::new(), String::new()),
+ };
+
+ let ref_id = data.ref_id.unwrap_or(null_def_id());
+
+ let def_id = ref_id.index.as_usize().to_string();
+ let def_crate = ref_id.krate.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
- ("refid", &ref_id),
- ("declid", &decl_id),
+ ("refid", &def_id),
+ ("refidcrate", &def_crate),
+ ("declid", &dcn),
+ ("declidcrate", &dck),
("scopeid", &scope)
]);
}
fn macro_use(&mut self, data: MacroUseData) {
- let scope = data.scope.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("callee_name", &data.name),
("qualname", &data.qualname),
}
fn mod_data(&mut self, data: ModData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
}
fn mod_ref(&mut self, data: ModRefData) {
- let ref_id = data.ref_id.unwrap_or(Id::null()).to_string();
+ let (ref_id, ref_crate) = match data.ref_id {
+ Some(rid) => (rid.index.as_usize().to_string(), rid.krate.to_string()),
+ None => (0.to_string(), 0.to_string())
+ };
- let scope = data.scope.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("qualname", &data.qualname),
("scopeid", &scope)
]);
}
fn struct_data(&mut self, data: StructData) {
- let id = data.id.to_string();
- let ctor_id = data.ctor_id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let ctor_id = data.ctor_id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("ctor_id", &ctor_id),
}
fn struct_variant(&mut self, data: StructVariantData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("ctor_id", &id),
}
fn trait_data(&mut self, data: TraitData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
}
fn tuple_variant(&mut self, data: TupleVariantData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("name", &data.name),
}
fn type_ref(&mut self, data: TypeRefData) {
- let ref_id = data.ref_id.unwrap_or(Id::null()).to_string();
- let scope = data.scope.to_string();
+ let (ref_id, ref_crate) = match data.ref_id {
+ Some(id) => (id.index.as_usize().to_string(), id.krate.to_string()),
+ None => (0.to_string(), 0.to_string())
+ };
+
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("qualname", &data.qualname),
("scopeid", &scope)
]);
}
fn typedef(&mut self, data: TypedefData) {
- let id = data.id.to_string();
+ let id = data.id.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("qualname", &data.qualname),
}
fn use_data(&mut self, data: UseData) {
- let id = data.id.to_string();
- let mod_id = data.mod_id.unwrap_or(Id::null()).to_string();
- let scope = data.scope.to_string();
+ let mod_id = data.mod_id.unwrap_or(null_def_id());
+
+ let id = data.id.index.as_u32().to_string();
+ let ref_id = mod_id.index.as_usize().to_string();
+ let ref_crate = mod_id.krate.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
- ("mod_id", &mod_id),
+ ("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("name", &data.name),
("scopeid", &scope)
]);
fn use_glob(&mut self, data: UseGlobData) {
let names = data.names.join(", ");
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("value", &names),
}
fn variable(&mut self, data: VariableData) {
- let id = data.id.to_string();
- let scope = data.scope.to_string();
+ let id = data.id.index.as_u32().to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
("id", &id),
("name", &data.name),
}
fn variable_ref(&mut self, data: VariableRefData) {
- let id = data.ref_id.to_string();
- let scope = data.scope.to_string();
+ let ref_id = data.ref_id.index.as_usize().to_string();
+ let ref_crate = data.ref_id.krate.to_string();
+ let scope = data.scope.index.as_u32().to_string();
let values = make_values_str(&[
- ("id", &id),
+ ("refid", &ref_id),
+ ("refidcrate", &ref_crate),
("qualname", ""),
("scopeid", &scope)
]);
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-use std::fmt::{self, Display, Formatter};
-
-use rustc::hir::def_id::DefId;
+use rustc::hir::def_id::{DefId, DefIndex};
use rustc::hir::map::Map;
use rustc::ty::TyCtxt;
use syntax::ast::{CrateNum, NodeId};
fn lower(self, tcx: &TyCtxt) -> Self::Target;
}
-// We use a newtype to enforce conversion of all NodeIds (which are u32s as well)
-#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, RustcEncodable)]
-pub struct Id(u32);
-
-impl Id {
- pub fn from_def_id(id: DefId) -> Id {
- Id(id.index.as_u32())
- }
-
- // FIXME: this function is called with non-local NodeIds. This means that they
- // cannot be mapped to a DefId. We should remove those calls. In the meantime,
- // we return a "null Id" when the NodeId is invalid.
- pub fn from_node_id(id: NodeId, map: &Map) -> Id {
- map.opt_local_def_id(id).map(|id| Id(id.index.as_u32()))
- .unwrap_or(Id::null())
- }
-
- pub fn null() -> Id {
- Id(u32::max_value())
- }
+fn make_def_id(id: NodeId, map: &Map) -> DefId {
+ map.opt_local_def_id(id).unwrap_or(null_def_id())
}
-impl Display for Id {
- fn fmt(&self, f: &mut Formatter) -> fmt::Result {
- self.0.fmt(f)
- }
+pub fn null_def_id() -> DefId {
+ DefId { krate: u32::max_value(), index: DefIndex::from_u32(u32::max_value()) }
}
#[derive(Clone, Debug, RustcEncodable)]
/// Data for enum declarations.
#[derive(Clone, Debug, RustcEncodable)]
pub struct EnumData {
- pub id: Id,
+ pub id: DefId,
pub value: String,
pub qualname: String,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
}
impl Lower for data::EnumData {
fn lower(self, tcx: &TyCtxt) -> EnumData {
EnumData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
value: self.value,
qualname: self.qualname,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
/// Data for extern crates.
#[derive(Debug, RustcEncodable)]
pub struct ExternCrateData {
- pub id: Id,
+ pub id: DefId,
pub name: String,
pub crate_num: CrateNum,
pub location: String,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
}
impl Lower for data::ExternCrateData {
fn lower(self, tcx: &TyCtxt) -> ExternCrateData {
ExternCrateData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
name: self.name,
crate_num: self.crate_num,
location: self.location,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct FunctionCallData {
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Id,
+ pub scope: DefId,
+ pub ref_id: DefId,
}
impl Lower for data::FunctionCallData {
fn lower(self, tcx: &TyCtxt) -> FunctionCallData {
FunctionCallData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: Id::from_def_id(self.ref_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
}
}
}
/// Data for all kinds of functions and methods.
#[derive(Clone, Debug, RustcEncodable)]
pub struct FunctionData {
- pub id: Id,
+ pub id: DefId,
pub name: String,
pub qualname: String,
- pub declaration: Option<Id>,
+ pub declaration: Option<DefId>,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
}
impl Lower for data::FunctionData {
fn lower(self, tcx: &TyCtxt) -> FunctionData {
FunctionData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
name: self.name,
qualname: self.qualname,
- declaration: self.declaration.map(Id::from_def_id),
+ declaration: self.declaration,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct FunctionRefData {
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Id,
+ pub scope: DefId,
+ pub ref_id: DefId,
}
impl Lower for data::FunctionRefData {
fn lower(self, tcx: &TyCtxt) -> FunctionRefData {
FunctionRefData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: Id::from_def_id(self.ref_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct ImplData {
- pub id: Id,
+ pub id: DefId,
pub span: SpanData,
- pub scope: Id,
- pub trait_ref: Option<Id>,
- pub self_ref: Option<Id>,
+ pub scope: DefId,
+ pub trait_ref: Option<DefId>,
+ pub self_ref: Option<DefId>,
}
impl Lower for data::ImplData {
fn lower(self, tcx: &TyCtxt) -> ImplData {
ImplData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- trait_ref: self.trait_ref.map(Id::from_def_id),
- self_ref: self.self_ref.map(Id::from_def_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ trait_ref: self.trait_ref,
+ self_ref: self.self_ref,
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct InheritanceData {
pub span: SpanData,
- pub base_id: Id,
- pub deriv_id: Id
+ pub base_id: DefId,
+ pub deriv_id: DefId
}
impl Lower for data::InheritanceData {
fn lower(self, tcx: &TyCtxt) -> InheritanceData {
InheritanceData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- base_id: Id::from_def_id(self.base_id),
- deriv_id: Id::from_node_id(self.deriv_id, &tcx.map)
+ base_id: self.base_id,
+ deriv_id: make_def_id(self.deriv_id, &tcx.map)
}
}
}
// Because macro expansion happens before ref-ids are determined,
// we use the callee span to reference the associated macro definition.
pub callee_span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
pub imported: bool,
}
name: self.name,
qualname: self.qualname,
callee_span: SpanData::from_span(self.callee_span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
imported: self.imported,
}
}
#[derive(Debug, RustcEncodable)]
pub struct MethodCallData {
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Option<Id>,
- pub decl_id: Option<Id>,
+ pub scope: DefId,
+ pub ref_id: Option<DefId>,
+ pub decl_id: Option<DefId>,
}
impl Lower for data::MethodCallData {
fn lower(self, tcx: &TyCtxt) -> MethodCallData {
MethodCallData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: self.ref_id.map(Id::from_def_id),
- decl_id: self.decl_id.map(Id::from_def_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
+ decl_id: self.decl_id,
}
}
}
/// Data for method declarations (methods with a body are treated as functions).
#[derive(Clone, Debug, RustcEncodable)]
pub struct MethodData {
- pub id: Id,
+ pub id: DefId,
pub qualname: String,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
}
impl Lower for data::MethodData {
fn lower(self, tcx: &TyCtxt) -> MethodData {
MethodData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- id: Id::from_node_id(self.id, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
qualname: self.qualname,
}
}
/// Data for modules.
#[derive(Debug, RustcEncodable)]
pub struct ModData {
- pub id: Id,
+ pub id: DefId,
pub name: String,
pub qualname: String,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
pub filename: String,
}
fn lower(self, tcx: &TyCtxt) -> ModData {
ModData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
name: self.name,
qualname: self.qualname,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
filename: self.filename,
}
}
#[derive(Debug, RustcEncodable)]
pub struct ModRefData {
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Option<Id>,
+ pub scope: DefId,
+ pub ref_id: Option<DefId>,
pub qualname: String
}
fn lower(self, tcx: &TyCtxt) -> ModRefData {
ModRefData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: self.ref_id.map(Id::from_def_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
qualname: self.qualname,
}
}
#[derive(Debug, RustcEncodable)]
pub struct StructData {
pub span: SpanData,
- pub id: Id,
- pub ctor_id: Id,
+ pub id: DefId,
+ pub ctor_id: DefId,
pub qualname: String,
- pub scope: Id,
+ pub scope: DefId,
pub value: String
}
fn lower(self, tcx: &TyCtxt) -> StructData {
StructData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- id: Id::from_node_id(self.id, &tcx.map),
- ctor_id: Id::from_node_id(self.ctor_id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
+ ctor_id: make_def_id(self.ctor_id, &tcx.map),
qualname: self.qualname,
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
value: self.value
}
}
#[derive(Debug, RustcEncodable)]
pub struct StructVariantData {
pub span: SpanData,
- pub id: Id,
+ pub id: DefId,
pub qualname: String,
pub type_value: String,
pub value: String,
- pub scope: Id
+ pub scope: DefId
}
impl Lower for data::StructVariantData {
fn lower(self, tcx: &TyCtxt) -> StructVariantData {
StructVariantData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
qualname: self.qualname,
type_value: self.type_value,
value: self.value,
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct TraitData {
pub span: SpanData,
- pub id: Id,
+ pub id: DefId,
pub qualname: String,
- pub scope: Id,
+ pub scope: DefId,
pub value: String
}
fn lower(self, tcx: &TyCtxt) -> TraitData {
TraitData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
qualname: self.qualname,
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
value: self.value,
}
}
#[derive(Debug, RustcEncodable)]
pub struct TupleVariantData {
pub span: SpanData,
- pub id: Id,
+ pub id: DefId,
pub name: String,
pub qualname: String,
pub type_value: String,
pub value: String,
- pub scope: Id,
+ pub scope: DefId,
}
impl Lower for data::TupleVariantData {
fn lower(self, tcx: &TyCtxt) -> TupleVariantData {
TupleVariantData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
name: self.name,
qualname: self.qualname,
type_value: self.type_value,
value: self.value,
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
/// Data for a typedef.
#[derive(Debug, RustcEncodable)]
pub struct TypedefData {
- pub id: Id,
+ pub id: DefId,
pub span: SpanData,
pub qualname: String,
pub value: String,
fn lower(self, tcx: &TyCtxt) -> TypedefData {
TypedefData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
span: SpanData::from_span(self.span, tcx.sess.codemap()),
qualname: self.qualname,
value: self.value,
#[derive(Clone, Debug, RustcEncodable)]
pub struct TypeRefData {
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Option<Id>,
+ pub scope: DefId,
+ pub ref_id: Option<DefId>,
pub qualname: String,
}
fn lower(self, tcx: &TyCtxt) -> TypeRefData {
TypeRefData {
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: self.ref_id.map(Id::from_def_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
qualname: self.qualname,
}
}
#[derive(Debug, RustcEncodable)]
pub struct UseData {
- pub id: Id,
+ pub id: DefId,
pub span: SpanData,
pub name: String,
- pub mod_id: Option<Id>,
- pub scope: Id
+ pub mod_id: Option<DefId>,
+ pub scope: DefId
}
impl Lower for data::UseData {
fn lower(self, tcx: &TyCtxt) -> UseData {
UseData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
span: SpanData::from_span(self.span, tcx.sess.codemap()),
name: self.name,
- mod_id: self.mod_id.map(Id::from_def_id),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ mod_id: self.mod_id,
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
#[derive(Debug, RustcEncodable)]
pub struct UseGlobData {
- pub id: Id,
+ pub id: DefId,
pub span: SpanData,
pub names: Vec<String>,
- pub scope: Id
+ pub scope: DefId
}
impl Lower for data::UseGlobData {
fn lower(self, tcx: &TyCtxt) -> UseGlobData {
UseGlobData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
span: SpanData::from_span(self.span, tcx.sess.codemap()),
names: self.names,
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
}
}
}
/// Data for local and global variables (consts and statics).
#[derive(Debug, RustcEncodable)]
pub struct VariableData {
- pub id: Id,
+ pub id: DefId,
pub name: String,
pub qualname: String,
pub span: SpanData,
- pub scope: Id,
+ pub scope: DefId,
pub value: String,
pub type_value: String,
}
fn lower(self, tcx: &TyCtxt) -> VariableData {
VariableData {
- id: Id::from_node_id(self.id, &tcx.map),
+ id: make_def_id(self.id, &tcx.map),
name: self.name,
qualname: self.qualname,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
+ scope: make_def_id(self.scope, &tcx.map),
value: self.value,
type_value: self.type_value,
}
pub struct VariableRefData {
pub name: String,
pub span: SpanData,
- pub scope: Id,
- pub ref_id: Id,
+ pub scope: DefId,
+ pub ref_id: DefId,
}
impl Lower for data::VariableRefData {
VariableRefData {
name: self.name,
span: SpanData::from_span(self.span, tcx.sess.codemap()),
- scope: Id::from_node_id(self.scope, &tcx.map),
- ref_id: Id::from_def_id(self.ref_id),
+ scope: make_def_id(self.scope, &tcx.map),
+ ref_id: self.ref_id,
}
}
}