It replaces `dummy_sp()`.
use std::vec;
use syntax::ast;
use syntax::attr;
-use syntax::codemap::dummy_sp;
+use syntax::codemap::DUMMY_SP;
use syntax::codemap;
use syntax::fold::ast_fold;
use syntax::fold;
fn spanned<T>(x: T) -> codemap::Spanned<T> {
codemap::Spanned {
node: x,
- span: dummy_sp(),
+ span: DUMMY_SP,
}
}
ast::DUMMY_NODE_ID),
attrs: ~[],
vis: ast::private,
- span: dummy_sp()
+ span: DUMMY_SP
}];
if use_uv(&crate) && !self.sess.building_library.get() {
ast::DUMMY_NODE_ID),
attrs: ~[],
vis: ast::private,
- span: dummy_sp()
+ span: DUMMY_SP
});
vis.push(ast::view_item {
node: ast::view_item_extern_mod(self.sess.ident_of("rustuv"),
ast::DUMMY_NODE_ID),
attrs: ~[],
vis: ast::private,
- span: dummy_sp()
+ span: DUMMY_SP
});
}
fn fold_mod(&mut self, module: &ast::_mod) -> ast::_mod {
let prelude_path = ast::Path {
- span: dummy_sp(),
+ span: DUMMY_SP,
global: false,
segments: ~[
ast::PathSegment {
node: ast::view_item_use(~[vp]),
attrs: ~[],
vis: ast::private,
- span: dummy_sp(),
+ span: DUMMY_SP,
};
let vis = vec::append(~[vi2], module.view_items);
use syntax::ast_util::*;
use syntax::attr::AttrMetaMethods;
use syntax::attr;
-use syntax::codemap::{dummy_sp, Span, ExpnInfo, NameAndSpan, MacroAttribute};
+use syntax::codemap::{DUMMY_SP, Span, ExpnInfo, NameAndSpan, MacroAttribute};
use syntax::codemap;
use syntax::ext::base::ExtCtxt;
use syntax::fold::ast_fold;
};
cx.ext_cx.bt_push(ExpnInfo {
- call_site: dummy_sp(),
+ call_site: DUMMY_SP,
callee: NameAndSpan {
name: @"test",
format: MacroAttribute,
node: vi,
attrs: ~[],
vis: ast::public,
- span: dummy_sp()
+ span: DUMMY_SP
}
}
id: ast::DUMMY_NODE_ID,
node: item_,
vis: ast::public,
- span: dummy_sp(),
+ span: DUMMY_SP,
};
debug!("Synthetic test module:\n{}\n",
}
fn nospan<T>(t: T) -> codemap::Spanned<T> {
- codemap::Spanned { node: t, span: dummy_sp() }
+ codemap::Spanned { node: t, span: DUMMY_SP }
}
fn path_node(ids: ~[ast::Ident]) -> ast::Path {
ast::Path {
- span: dummy_sp(),
+ span: DUMMY_SP,
global: false,
segments: ids.move_iter().map(|identifier| ast::PathSegment {
identifier: identifier,
fn path_node_global(ids: ~[ast::Ident]) -> ast::Path {
ast::Path {
- span: dummy_sp(),
+ span: DUMMY_SP,
global: true,
segments: ids.move_iter().map(|identifier| ast::PathSegment {
identifier: identifier,
let inner_expr = @ast::Expr {
id: ast::DUMMY_NODE_ID,
node: ast::ExprVec(descs, ast::MutImmutable),
- span: dummy_sp(),
+ span: DUMMY_SP,
};
@ast::Expr {
id: ast::DUMMY_NODE_ID,
node: ast::ExprVstore(inner_expr, ast::ExprVstoreSlice),
- span: dummy_sp(),
+ span: DUMMY_SP,
}
}
use syntax::abi;
use syntax::attr;
use syntax::attr::AttrMetaMethods;
-use syntax::codemap::{Span, dummy_sp};
+use syntax::codemap::{Span, DUMMY_SP};
use syntax::diagnostic::SpanHandler;
use syntax::parse::token;
use syntax::parse::token::ident_interner;
// This is a new one so we've got to load it
// FIXME (#2404): Need better error reporting than just a bogus
// span.
- let fake_span = dummy_sp();
+ let fake_span = DUMMY_SP;
let local_cnum = resolve_crate(e, cname_str, cname_str, dep.vers,
dep.hash, fake_span);
cnum_map.insert(extrn_cnum, local_cnum);
value: meta_item,
is_sugared_doc: false,
},
- span: codemap::dummy_sp()
+ span: codemap::DUMMY_SP
});
true
});
ast::DefId { crate: ast::LOCAL_CRATE, node: self.tr_id(did.node) }
}
pub fn tr_span(&self, _span: Span) -> Span {
- codemap::dummy_sp() // FIXME (#1972): handle span properly
+ codemap::DUMMY_SP // FIXME (#1972): handle span properly
}
}
use std::vec;
use syntax::ast::*;
use syntax::ast_util::{unguarded_pat, walk_pat};
-use syntax::codemap::{Span, dummy_sp, Spanned};
+use syntax::codemap::{Span, DUMMY_SP, Spanned};
use syntax::visit;
use syntax::visit::{Visitor,fn_kind};
}
fn wild() -> @Pat {
- @Pat {id: 0, node: PatWild, span: dummy_sp()}
+ @Pat {id: 0, node: PatWild, span: DUMMY_SP}
}
fn wild_multi() -> @Pat {
- @Pat {id: 0, node: PatWildMulti, span: dummy_sp()}
+ @Pat {id: 0, node: PatWildMulti, span: DUMMY_SP}
}
fn specialize(cx: &MatchCheckCtxt,
use syntax::parse::token::{ident_interner, interner_get};
use syntax::parse::token::special_idents;
use syntax::print::pprust::path_to_str;
-use syntax::codemap::{Span, dummy_sp, Pos};
+use syntax::codemap::{Span, DUMMY_SP, Pos};
use syntax::opt_vec::OptVec;
use syntax::visit;
use syntax::visit::Visitor;
NormalModuleKind,
true,
is_public,
- dummy_sp());
+ DUMMY_SP);
}
}
}
// public.
let is_public = vis != ast::private;
if is_struct {
- child_name_bindings.define_type(def, dummy_sp(), is_public);
+ child_name_bindings.define_type(def, DUMMY_SP, is_public);
self.structs.insert(variant_id);
} else {
- child_name_bindings.define_value(def, dummy_sp(), is_public);
+ child_name_bindings.define_value(def, DUMMY_SP, is_public);
}
}
DefFn(..) | DefStaticMethod(..) | DefStatic(..) => {
debug!("(building reduced graph for external \
crate) building value (fn/static) {}", final_ident);
- child_name_bindings.define_value(def, dummy_sp(), is_public);
+ child_name_bindings.define_value(def, DUMMY_SP, is_public);
}
DefTrait(def_id) => {
debug!("(building reduced graph for external \
}
}
- child_name_bindings.define_type(def, dummy_sp(), is_public);
+ child_name_bindings.define_type(def, DUMMY_SP, is_public);
// Define a module if necessary.
let parent_link = self.get_parent_link(new_parent, ident);
TraitModuleKind,
true,
is_public,
- dummy_sp())
+ DUMMY_SP)
}
DefTy(_) => {
debug!("(building reduced graph for external \
crate) building type {}", final_ident);
- child_name_bindings.define_type(def, dummy_sp(), is_public);
+ child_name_bindings.define_type(def, DUMMY_SP, is_public);
}
DefStruct(def_id) => {
debug!("(building reduced graph for external \
crate) building type and value for {}",
final_ident);
- child_name_bindings.define_type(def, dummy_sp(), is_public);
+ child_name_bindings.define_type(def, DUMMY_SP, is_public);
if csearch::get_struct_fields(self.session.cstore, def_id).len() == 0 {
- child_name_bindings.define_value(def, dummy_sp(), is_public);
+ child_name_bindings.define_value(def, DUMMY_SP, is_public);
}
self.structs.insert(def_id);
}
self.add_child(ident,
ModuleReducedGraphParent(root),
OverwriteDuplicates,
- dummy_sp());
+ DUMMY_SP);
self.handle_external_def(def,
visibility,
final_ident,
ModuleReducedGraphParent(root),
OverwriteDuplicates,
- dummy_sp());
+ DUMMY_SP);
// Process the static methods. First,
// create the module.
ImplModuleKind,
true,
true,
- dummy_sp());
+ DUMMY_SP);
type_module =
child_name_bindings.
get_module();
self.add_child(ident,
new_parent,
OverwriteDuplicates,
- dummy_sp());
+ DUMMY_SP);
let def = DefFn(
static_method_info.def_id,
static_method_info.purity);
method_name_bindings.define_value(
- def, dummy_sp(),
+ def, DUMMY_SP,
visibility == ast::public);
}
}
// because this means that they were generated in some fashion by the
// compiler and we don't need to consider them.
if vi.vis == public { return }
- if vi.span == dummy_sp() { return }
+ if vi.span == DUMMY_SP { return }
match vi.node {
view_item_extern_mod(..) => {} // ignore
use syntax::ast::Ident;
use syntax::ast_util::path_to_ident;
use syntax::ast_util;
-use syntax::codemap::{Span, dummy_sp};
+use syntax::codemap::{Span, DUMMY_SP};
// An option identifying a literal: either a unit-like struct or an
// expression.
let _indenter = indenter();
let tcx = bcx.tcx();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
let mut i = 0;
enter_match(bcx, tcx.def_map, m, col, val, |p| {
let answer = match p.node {
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatStruct(_, ref fpats, _) => {
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatTup(ref elts) => Some((*elts).clone()),
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatEnum(_, Some(ref elts)) => Some((*elts).clone()),
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatBox(sub) => {
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: dummy_sp()};
+ let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatUniq(sub) => {
bcx.val_to_str(val));
let _indenter = indenter();
- let dummy = @ast::Pat { id: 0, node: ast::PatWild, span: dummy_sp() };
+ let dummy = @ast::Pat { id: 0, node: ast::PatWild, span: DUMMY_SP };
enter_match(bcx, dm, m, col, val, |p| {
match p.node {
ast::PatRegion(sub) => {
vals.slice(col + 1u, vals.len()));
let ccx = bcx.fcx.ccx;
let mut pat_id = 0;
- let mut pat_span = dummy_sp();
+ let mut pat_span = DUMMY_SP;
for br in m.iter() {
// Find a real id (we're adding placeholder wildcard patterns, but
// each column is guaranteed to have at least one real pattern)
ty: varg.ty(),
pat: ast_util::ident_to_pat(
ccx.tcx.sess.next_node_id(),
- codemap::dummy_sp(),
+ codemap::DUMMY_SP,
special_idents::arg),
id: varg.id(),
}
};
// This can be the case for functions inlined from another crate
- if span == codemap::dummy_sp() {
+ if span == codemap::DUMMY_SP {
return FunctionWithoutDebugInfo;
}
}
};
- signature.push(type_metadata(cx, return_type, codemap::dummy_sp()));
+ signature.push(type_metadata(cx, return_type, codemap::DUMMY_SP));
}
}
}
};
- signature.push(type_metadata(cx, arg_type, codemap::dummy_sp()));
+ signature.push(type_metadata(cx, arg_type, codemap::DUMMY_SP));
}
return create_DIArray(DIB(cx), signature);
if cx.sess.opts.extra_debuginfo {
let actual_self_type_metadata = type_metadata(cx,
actual_self_type,
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
let ident = special_idents::type_self;
// Again, only create type information if extra_debuginfo is enabled
if cx.sess.opts.extra_debuginfo {
- let actual_type_metadata = type_metadata(cx, actual_type, codemap::dummy_sp());
+ let actual_type_metadata = type_metadata(cx, actual_type, codemap::DUMMY_SP);
let param_metadata = token::ident_to_str(&ident).with_c_str(|name| {
unsafe {
llvm::LLVMDIBuilderCreateTemplateTypeParameter(
llvm_type,
member_descriptions,
file_metadata,
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
return metadata_stub;
}
}
variant_llvm_type,
member_descriptions,
self.file_metadata,
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
MemberDescription {
name: @"",
llvm_type: variant_llvm_type,
cx.sess.span_warn(span,
format!("debuginfo::enum_metadata()::adt_struct_metadata() - Unexpected node \
type: {:?}. This is a bug.", node));
- codemap::dummy_sp()
+ codemap::DUMMY_SP
}
}
} else {
// For definitions from other crates we have no location information available.
- codemap::dummy_sp()
+ codemap::DUMMY_SP
};
let metadata_stub = create_struct_stub(cx,
let discriminant_llvm_type = adt::ll_inttype(cx, inttype);
let (discriminant_size, discriminant_align) = size_and_align_of(cx, discriminant_llvm_type);
let discriminant_base_type_metadata = type_metadata(cx, adt::ty_of_inttype(inttype),
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
enum_name.with_c_str(|enum_name| {
unsafe {
llvm::LLVMDIBuilderCreateEnumerationType(
let int_type = ty::mk_int();
let nil_pointer_type = ty::mk_nil_ptr(cx.tcx);
- let nil_pointer_type_metadata = type_metadata(cx, nil_pointer_type, codemap::dummy_sp());
+ let nil_pointer_type_metadata = type_metadata(cx, nil_pointer_type, codemap::DUMMY_SP);
let member_descriptions = [
MemberDescription {
name: @"refcnt",
llvm_type: member_llvm_types[0],
- type_metadata: type_metadata(cx, int_type, codemap::dummy_sp()),
+ type_metadata: type_metadata(cx, int_type, codemap::DUMMY_SP),
offset: ComputedMemberOffset,
},
MemberDescription {
let content_type_metadata = type_metadata(
cx,
type_in_box,
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
let box_metadata = boxed_type_metadata(
cx,
Some(content_type_name),
content_llvm_type,
content_type_metadata,
- codemap::dummy_sp());
+ codemap::DUMMY_SP);
pointer_type_metadata(cx, pointer_type, box_metadata)
}
cx.sess.span_warn(warning_span,
format!("debuginfo::get_namespace_and_span_for_item() \
- Unexpected node type: {:?}", *node));
- codemap::dummy_sp()
+ codemap::DUMMY_SP
}
};
definition_span
} else {
// For external items there is no span information
- codemap::dummy_sp()
+ codemap::DUMMY_SP
};
(containing_scope, definition_span)
indent(|| {
cx.probe(|| {
let trace = TypeTrace {
- origin: Misc(codemap::dummy_sp()),
+ origin: Misc(codemap::DUMMY_SP),
values: Types(expected_found(true, a, b))
};
cx.sub(true, trace).tys(a, b)
indent(|| {
cx.probe(|| {
let trace = TypeTrace {
- origin: Misc(codemap::dummy_sp()),
+ origin: Misc(codemap::DUMMY_SP),
values: Types(expected_found(true, a, b))
};
Coerce(cx.combine_fields(true, trace)).tys(a, b)
BoundRegionInFnCall(a, _) => a,
BoundRegionInFnType(a, _) => a,
BoundRegionInTypeOrImpl(a) => a,
- BoundRegionInCoherence => codemap::dummy_sp(),
+ BoundRegionInCoherence => codemap::DUMMY_SP,
}
}
}
use extra::getopts;
use extra::getopts;
use extra::oldmap::HashMap;
-use syntax::codemap::dummy_sp;
+use syntax::codemap::DUMMY_SP;
use syntax::parse::parse_crate_from_source_str;
use syntax::{ast, attr, parse};
ty::mk_imm_rptr(self.tcx, ty::ReStatic, self.t_int())
}
- pub fn lub() -> Lub { Lub(self.infcx.combine_fields(true, dummy_sp())) }
+ pub fn lub() -> Lub { Lub(self.infcx.combine_fields(true, DUMMY_SP)) }
- pub fn glb() -> Glb { Glb(self.infcx.combine_fields(true, dummy_sp())) }
+ pub fn glb() -> Glb { Glb(self.infcx.combine_fields(true, DUMMY_SP)) }
pub fn resolve_regions(exp_count: uint) {
debug!("resolve_regions(%u)", exp_count);
name : name,
id: 0,
vis: ast::private,
- where: syntax::codemap::dummy_sp(),
+ where: syntax::codemap::DUMMY_SP,
attrs : ~[],
structs : ~[],
enums : ~[],
use rustc::driver::{driver, session};
use extra::getopts::groups::getopts;
use syntax::ast_util::*;
-use syntax::codemap::{dummy_sp, Spanned};
+use syntax::codemap::{DUMMY_SP, Spanned};
use syntax::ext::base::ExtCtxt;
use syntax::{ast, attr, codemap, diagnostic, fold, visit};
use syntax::attr::AttrMetaMethods;
pub fn mk_string_lit(s: @str) -> ast::lit {
Spanned {
node: ast::lit_str(s, ast::CookedStr),
- span: dummy_sp()
+ span: DUMMY_SP
}
}
expn_info: Option<@ExpnInfo>
}
+pub static DUMMY_SP: Span = Span { lo: BytePos(0), hi: BytePos(0), expn_info: None };
+
#[deriving(Clone, Eq, Encodable, Decodable, IterBytes)]
pub struct Spanned<T> {
node: T,
impl<D:Decoder> Decodable<D> for Span {
fn decode(_d: &mut D) -> Span {
- dummy_sp()
+ DUMMY_SP
}
}
}
pub fn dummy_spanned<T>(t: T) -> Spanned<T> {
- respan(dummy_sp(), t)
+ respan(DUMMY_SP, t)
}
/* assuming that we're not in macro expansion */
Span {lo: lo, hi: hi, expn_info: None}
}
-// make this a const, once the compiler supports it
-pub fn dummy_sp() -> Span { return mk_sp(BytePos(0), BytePos(0)); }
-
-
-
/// A source code location used for error reporting
pub struct Loc {
/// Information about the original source
pub fn span_to_str(&self, sp: Span) -> ~str {
let files = &*self.files;
- if files.len() == 0 && sp == dummy_sp() {
+ if files.len() == 0 && sp == DUMMY_SP {
return ~"no-location";
}
use ast::{P, Ident};
use ast;
use ast_util;
-use codemap::{Span, respan, dummy_sp};
+use codemap::{Span, respan, DUMMY_SP};
use ext::base::ExtCtxt;
use ext::quote::rt::*;
use fold::ast_fold;
fn ty_option(&self, ty: P<ast::Ty>) -> P<ast::Ty> {
self.ty_path(
- self.path_all(dummy_sp(),
+ self.path_all(DUMMY_SP,
true,
~[
self.ident_of("std"),
P(ast::Ty {
id: ast::DUMMY_NODE_ID,
node: ast::ty_nil,
- span: dummy_sp(),
+ span: DUMMY_SP,
})
}
// incorrect code.
fn ty_vars(&self, ty_params: &OptVec<ast::TyParam>) -> ~[P<ast::Ty>] {
opt_vec::take_vec(
- ty_params.map(|p| self.ty_ident(dummy_sp(), p.ident)))
+ ty_params.map(|p| self.ty_ident(DUMMY_SP, p.ident)))
}
fn ty_vars_global(&self, ty_params: &OptVec<ast::TyParam>) -> ~[P<ast::Ty>] {
opt_vec::take_vec(
ty_params.map(|p| self.ty_path(
- self.path_global(dummy_sp(), ~[p.ident]), None)))
+ self.path_global(DUMMY_SP, ~[p.ident]), None)))
}
fn strip_bounds(&self, generics: &Generics) -> Generics {
// make a MetaWord outer attribute with the given name
fn make_dummy_attr(s: @str) -> ast::Attribute {
Spanned {
- span:codemap::dummy_sp(),
+ span:codemap::DUMMY_SP,
node: Attribute_ {
style: AttrOuter,
value: @Spanned {
node: MetaWord(s),
- span: codemap::dummy_sp(),
+ span: codemap::DUMMY_SP,
},
is_sugared_doc: false,
}
use ast::{Ident, matcher_, matcher, match_tok, match_nonterminal, match_seq};
use ast::{tt_delim};
use ast;
-use codemap::{Span, Spanned, dummy_sp};
+use codemap::{Span, Spanned, DUMMY_SP};
use ext::base::{AnyMacro, ExtCtxt, MacResult, MRAny, MRDef, MacroDef};
use ext::base::{NormalTT, SyntaxExpanderTTTrait};
use ext::base;
}
// Which arm's failure should we report? (the one furthest along)
- let mut best_fail_spot = dummy_sp();
+ let mut best_fail_spot = DUMMY_SP;
let mut best_fail_msg = ~"internal error: ran no matchers";
let s_d = cx.parse_sess().span_diagnostic;
fn ms(m: matcher_) -> matcher {
Spanned {
node: m.clone(),
- span: dummy_sp()
+ span: DUMMY_SP
}
}
use ast;
use ast::{token_tree, tt_delim, tt_tok, tt_seq, tt_nonterminal,Ident};
-use codemap::{Span, dummy_sp};
+use codemap::{Span, DUMMY_SP};
use diagnostic::SpanHandler;
use ext::tt::macro_parser::{named_match, matched_seq, matched_nonterminal};
use parse::token::{EOF, INTERPOLATED, IDENT, Token, nt_ident};
repeat_len: ~[],
/* dummy values, never read: */
cur_tok: EOF,
- cur_span: dummy_sp()
+ cur_span: DUMMY_SP
};
tt_next_token(r); /* get cur_tok and cur_span set up */
return r;
filemap: filemap,
/* dummy values; not read */
peek_tok: token::EOF,
- peek_span: codemap::dummy_sp()
+ peek_span: codemap::DUMMY_SP
};
bump(r);
return r;
inputs: ~[],
output: ast::P(ast::Ty {id: 0,
node: ast::ty_nil,
- span: codemap::dummy_sp()}),
+ span: codemap::DUMMY_SP}),
cf: ast::return_val,
variadic: false
};
fn test_variant_to_str() {
let ident = token::str_to_ident("principal_skinner");
- let var = codemap::respan(codemap::dummy_sp(), ast::variant_ {
+ let var = codemap::respan(codemap::DUMMY_SP, ast::variant_ {
name: ident,
attrs: ~[],
// making this up as I go.... ?