diff --git a/Makefile.in b/Makefile.in index e476ac1dba2d1..37d652c04bbf1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,6 +130,8 @@ CFG_CORELIB :=$(call CFG_LIB_NAME,core) CFG_STDLIB :=$(call CFG_LIB_NAME,std) CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc) CFG_LIBSYNTAX :=$(call CFG_LIB_NAME,syntax) +CFG_LIBTESTINGFUNS :=$(call CFG_LIB_NAME,testingfuns) +CFG_LIBCODEMAP :=$(call CFG_LIB_NAME,codemap) CFG_LIBFUZZER :=$(call CFG_LIB_NAME,fuzzer) CFG_LIBCARGO :=$(call CFG_LIB_NAME,cargo) CFG_LIBRUSTDOC :=$(call CFG_LIB_NAME,rustdoc) @@ -147,6 +149,8 @@ STDLIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,std) CORELIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,core) LIBRUSTC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustc) LIBSYNTAX_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,syntax) +LIBTESTINGFUNS_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,testingfuns) +LIBCODEMAP_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,codemap) LIBFUZZER_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,fuzzer) LIBCARGO_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,cargo) LIBRUSTDOC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustdoc) @@ -230,10 +234,20 @@ COMPILER_CRATE := $(S)src/librustc/rustc.rc COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/librustc/, \ rustc.rc *.rs */*.rs */*/*.rs */*/*/*.rs)) +## NB: these dependencies overlap with the ones for libtestingfuns +## and libcodemap, but there's an indirect dependency there anyway... LIBSYNTAX_CRATE := $(S)src/libsyntax/syntax.rc LIBSYNTAX_INPUTS := $(wildcard $(addprefix $(S)src/libsyntax/, \ syntax.rc *.rs */*.rs */*/*.rs)) +LIBTESTINGFUNS_CRATE := $(S)src/libsyntax/util/testing.rs +LIBTESTINGFUNS_INPUTS := $(wildcard $(addprefix $(S)src/libsyntax/, \ + util/testing.rs )) + +LIBCODEMAP_CRATE := $(S)src/libsyntax/codemap.rs +LIBCODEMAP_INPUTS := $(wildcard $(addprefix $(S)src/libsyntax/, \ + codemap.rs )) + DRIVER_CRATE := $(S)src/driver/driver.rs ###################################################################### diff --git a/mk/host.mk b/mk/host.mk index 9dc5210cf0081..beb1c153b75ae 100644 --- a/mk/host.mk +++ b/mk/host.mk @@ -48,6 +48,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBSYNTAX) \ $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) \ $$(HLIB$(2)_H_$(4))/$$(CFG_RUSTLLVM) \ + $$(HLIB$(2)_H_$(4))/$$(CFG_LIBCODEMAP) \ $$(HCORELIB_DEFAULT$(2)_H_$(3)) \ $$(HSTDLIB_DEFAULT$(2)_H_$(3)) @$$(call E, cp: $$@) @@ -56,6 +57,18 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \ $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB)) \ $$(HLIB$(2)_H_$(4)) +$$(HLIB$(2)_H_$(4))/$$(CFG_LIBCODEMAP): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBCODEMAP) \ + $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) \ + $$(HLIB$(2)_H_$(4))/$$(CFG_RUSTLLVM) \ + $$(HCORELIB_DEFAULT$(2)_H_$(3)) \ + $$(HSTDLIB_DEFAULT$(2)_H_$(3)) + @$$(call E, cp: $$@) + $$(Q)cp $$< $$@ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBCODEMAP_GLOB) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBCODEMAP_DSYM_GLOB)) \ + $$(HLIB$(2)_H_$(4)) + $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME): \ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_RUNTIME) @$$(call E, cp: $$@) diff --git a/mk/target.mk b/mk/target.mk index 5694c907950da..9065bdec95a1d 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -54,6 +54,25 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBSYNTAX): \ $$(LIBSYNTAX_CRATE) $$(LIBSYNTAX_INPUTS) \ $$(TSREQ$(1)_T_$(2)_H_$(3)) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBCODEMAP) \ + $$(TCORELIB_DEFAULT$(1)_T_$(2)_H_$(3)) \ + $$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3)) + @$$(call E, compile_and_link: $$@) + $$(STAGE$(1)_T_$(2)_H_$(3)) $(BORROWCK) -o $$@ $$< && touch $$@ + +$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBCODEMAP): \ + $$(LIBCODEMAP_CRATE) $$(LIBCODEMAP_INPUTS) \ + $$(TSREQ$(1)_T_$(2)_H_$(3)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM) \ + $$(TCORELIB_DEFAULT$(1)_T_$(2)_H_$(3)) \ + $$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3)) + @$$(call E, compile_and_link: $$@) + $$(STAGE$(1)_T_$(2)_H_$(3)) $(BORROWCK) -o $$@ $$< && touch $$@ + +$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBTESTINGFUNS): \ + $$(LIBTESTINGFUNS_CRATE) $$(LIBTESTINGFUNS_INPUTS) \ + $$(TSREQ$(1)_T_$(2)_H_$(3)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM) \ $$(TCORELIB_DEFAULT$(1)_T_$(2)_H_$(3)) \ $$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3)) @$$(call E, compile_and_link: $$@) diff --git a/src/libfuzzer/fuzzer.rc b/src/libfuzzer/fuzzer.rc index 569a8df1a5168..8729a9908c279 100644 --- a/src/libfuzzer/fuzzer.rc +++ b/src/libfuzzer/fuzzer.rc @@ -80,12 +80,12 @@ fn common_exprs() -> ~[ast::expr] { id: 0, callee_id: -1, node: e, - span: ast_util::dummy_sp(), + span: codemap::dummy_sp(), } } fn dsl(l: ast::lit_) -> ast::lit { - ast::spanned { node: l, span: ast_util::dummy_sp() } + ast::spanned { node: l, span: codemap::dummy_sp() } } ~[dse(ast::expr_break(option::None)), diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs index 70cad499e4cb7..330b97eabc493 100644 --- a/src/librustc/driver/driver.rs +++ b/src/librustc/driver/driver.rs @@ -40,7 +40,7 @@ use std; use syntax::ast; use syntax::ast_map; use syntax::attr; -use syntax::codemap; +use codemap; use syntax::diagnostic; use syntax::parse; use syntax::print::{pp, pprust}; diff --git a/src/librustc/driver/session.rs b/src/librustc/driver/session.rs index e7c78cd48eeef..030dcdd9ef504 100644 --- a/src/librustc/driver/session.rs +++ b/src/librustc/driver/session.rs @@ -23,10 +23,11 @@ use core::cmp; use core::option; use syntax::ast::node_id; use syntax::ast::{int_ty, uint_ty, float_ty}; -use syntax::codemap::span; +use codemap::span; use syntax::diagnostic; use syntax::parse::parse_sess; -use syntax::{ast, codemap}; +use syntax::ast; +use codemap; use syntax; enum os { os_win32, os_macos, os_linux, os_android, os_freebsd, } @@ -345,12 +346,12 @@ mod test { use syntax::ast_util; fn make_crate_type_attr(+t: ~str) -> ast::attribute { - ast_util::respan(ast_util::dummy_sp(), ast::attribute_ { + ast_util::respan(codemap::dummy_sp(), ast::attribute_ { style: ast::attr_outer, - value: ast_util::respan(ast_util::dummy_sp(), + value: ast_util::respan(codemap::dummy_sp(), ast::meta_name_value( ~"crate_type", - ast_util::respan(ast_util::dummy_sp(), + ast_util::respan(codemap::dummy_sp(), ast::lit_str(@t)))), is_sugared_doc: false }) @@ -360,7 +361,7 @@ mod test { let mut attrs = ~[]; if with_bin { attrs += ~[make_crate_type_attr(~"bin")]; } if with_lib { attrs += ~[make_crate_type_attr(~"lib")]; } - @ast_util::respan(ast_util::dummy_sp(), ast::crate_ { + @ast_util::respan(codemap::dummy_sp(), ast::crate_ { module: ast::_mod { view_items: ~[], items: ~[] }, attrs: attrs, config: ~[] diff --git a/src/librustc/front/core_inject.rs b/src/librustc/front/core_inject.rs index 6762247aba03f..d1a82087dcf84 100644 --- a/src/librustc/front/core_inject.rs +++ b/src/librustc/front/core_inject.rs @@ -16,7 +16,8 @@ use core::vec; use syntax::ast; use syntax::ast_util::*; use syntax::attr; -use syntax::codemap; +use codemap; +use codemap::dummy_sp; use syntax::fold; export maybe_inject_libcore_ref; diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs index 75b7c70db9f8d..47e391f9fd030 100644 --- a/src/librustc/front/test.rs +++ b/src/librustc/front/test.rs @@ -21,11 +21,12 @@ use core::option; use core::vec; use syntax::ast_util::*; use syntax::attr; -use syntax::codemap::span; +use codemap::span; use syntax::fold; use syntax::print::pprust; use syntax::{ast, ast_util}; use syntax::attr::attrs_contains_name; +use codemap::dummy_sp; export modify_for_testing; diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index 0099683102de3..f906309276515 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -24,7 +24,8 @@ use core::either; use core::option; use core::vec; use syntax::attr; -use syntax::codemap::span; +use codemap; +use codemap::span; use syntax::diagnostic::span_handler; use syntax::parse::token::ident_interner; use syntax::print::pprust; @@ -295,7 +296,7 @@ fn resolve_crate_deps(e: env, cdata: @~[u8]) -> cstore::cnum_map { // 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 = ast_util::dummy_sp(); + let fake_span = codemap::dummy_sp(); let local_cnum = resolve_crate(e, cname, cmetas, /*bad*/copy dep.hash, fake_span); cnum_map.insert(extrn_cnum, local_cnum); diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index 28f900c59dd72..0c8cc7f96b141 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -26,7 +26,7 @@ use std::ebml; use std::map::HashMap; use syntax::ast; use syntax::ast_map; -use syntax::ast_util::dummy_sp; +use codemap::dummy_sp; use syntax::ast_util; use syntax::diagnostic::expect; use syntax::diagnostic::span_handler; diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 3d532070166dd..034f647d6c939 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -45,6 +45,7 @@ use syntax::diagnostic::span_handler; use syntax::parse::token::ident_interner; use syntax::print::pprust; use syntax::{ast, ast_util}; +use codemap; export struct_dtor; export get_struct_fields; @@ -1023,7 +1024,7 @@ fn get_attributes(md: ebml::Doc) -> ~[ast::attribute] { value: /*bad*/copy *meta_item, is_sugared_doc: false, }, - span: ast_util::dummy_sp() + span: codemap::dummy_sp() }); }; } diff --git a/src/librustc/metadata/loader.rs b/src/librustc/metadata/loader.rs index f15817551b684..9001b18b473ee 100644 --- a/src/librustc/metadata/loader.rs +++ b/src/librustc/metadata/loader.rs @@ -18,7 +18,7 @@ use metadata::decoder; use metadata::encoder; use metadata::filesearch::FileSearch; use metadata::filesearch; -use syntax::codemap::span; +use codemap::span; use syntax::diagnostic::span_handler; use syntax::parse::token::ident_interner; use syntax::print::pprust; diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs index 590dd9f7ea7e0..17b16d8fe9e72 100644 --- a/src/librustc/metadata/tydecode.rs +++ b/src/librustc/metadata/tydecode.rs @@ -27,6 +27,7 @@ use syntax::ast; use syntax::ast::*; use syntax::ast_util; use syntax::ast_util::respan; +use codemap; use std::map::HashMap; export parse_state_from_data; @@ -121,7 +122,7 @@ fn parse_path(st: @pstate) -> @ast::path { ':' => { next(st); next(st); } c => { if c == '(' { - return @ast::path { span: ast_util::dummy_sp(), + return @ast::path { span: codemap::dummy_sp(), global: false, idents: idents, rp: None, diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index f39bd552c3bb6..a1e48343e57dd 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -39,8 +39,8 @@ use std::serialize::Decodable; use syntax::ast; use syntax::ast_map; use syntax::ast_util; -use syntax::codemap::span; -use syntax::codemap; +use codemap::span; +use codemap; use syntax::diagnostic; use syntax::fold::*; use syntax::fold; @@ -221,7 +221,7 @@ impl extended_decode_ctxt { ast::def_id { crate: ast::local_crate, node: self.tr_id(did.node) } } fn tr_span(_span: span) -> span { - ast_util::dummy_sp() // FIXME (#1972): handle span properly + codemap::dummy_sp() // FIXME (#1972): handle span properly } } diff --git a/src/librustc/middle/borrowck/check_loans.rs b/src/librustc/middle/borrowck/check_loans.rs index ff5854322f456..487a9ce00522f 100644 --- a/src/librustc/middle/borrowck/check_loans.rs +++ b/src/librustc/middle/borrowck/check_loans.rs @@ -37,7 +37,7 @@ use std::map::HashMap; use syntax::ast::{m_const, m_imm, m_mutbl}; use syntax::ast; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::visit; diff --git a/src/librustc/middle/borrowck/gather_loans.rs b/src/librustc/middle/borrowck/gather_loans.rs index 0fff0c66a3846..4ffce0ec555f1 100644 --- a/src/librustc/middle/borrowck/gather_loans.rs +++ b/src/librustc/middle/borrowck/gather_loans.rs @@ -35,7 +35,7 @@ use core::vec; use std::map::HashMap; use syntax::ast::{m_const, m_imm, m_mutbl}; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::visit; diff --git a/src/librustc/middle/borrowck/mod.rs b/src/librustc/middle/borrowck/mod.rs index a01c04a8abf15..c635d6f84904b 100644 --- a/src/librustc/middle/borrowck/mod.rs +++ b/src/librustc/middle/borrowck/mod.rs @@ -247,7 +247,7 @@ use syntax::ast::{mutability, m_mutbl, m_imm, m_const}; use syntax::ast; use syntax::ast_map; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::visit; diff --git a/src/librustc/middle/capture.rs b/src/librustc/middle/capture.rs index bd8d1b6490659..e9b9bd9f071d6 100644 --- a/src/librustc/middle/capture.rs +++ b/src/librustc/middle/capture.rs @@ -17,7 +17,7 @@ use core::option; use core::vec; use std::map::HashMap; use std::map; -use syntax::codemap::span; +use codemap::span; use syntax::{ast, ast_util}; export capture_mode; diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index d76e1b179b1a9..68bc5cc9e9e31 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -25,9 +25,9 @@ use core::vec; use std::map::HashMap; use std::sort; use syntax::ast::*; -use syntax::ast_util::{variant_def_ids, dummy_sp, unguarded_pat, walk_pat}; +use syntax::ast_util::{variant_def_ids, unguarded_pat, walk_pat}; use syntax::ast_util; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; use syntax::print::pprust::pat_to_str; use syntax::visit; @@ -478,7 +478,7 @@ fn ctor_arity(cx: @MatchCheckCtxt, ctor: ctor, ty: ty::t) -> uint { } fn wild() -> @pat { - @pat {id: 0, node: pat_wild, span: ast_util::dummy_sp()} + @pat {id: 0, node: pat_wild, span: dummy_sp()} } fn specialize(cx: @MatchCheckCtxt, +r: ~[@pat], ctor_id: ctor, arity: uint, diff --git a/src/librustc/middle/freevars.rs b/src/librustc/middle/freevars.rs index 9e9f814110e16..92833968b9369 100644 --- a/src/librustc/middle/freevars.rs +++ b/src/librustc/middle/freevars.rs @@ -19,7 +19,7 @@ use core::int; use core::option::*; use core::vec; use std::map::*; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::path_to_str; use syntax::{ast, ast_util, visit}; diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index eee0a48ec67f9..c12b409d1f20d 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -27,7 +27,7 @@ use core::str; use core::vec; use std::map::HashMap; use syntax::ast::*; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::expr_to_str; use syntax::{visit, ast_util}; diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 515666445e3aa..9d38ef1ca1450 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -38,7 +38,7 @@ use std::smallintmap::{Map, SmallIntMap}; use std::smallintmap; use syntax::ast_util::{path_to_ident}; use syntax::attr; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::{expr_to_str, mode_to_str, pat_to_str}; use syntax::{ast, ast_util, visit}; diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index eb07e286f6289..63e47d943ccff 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -122,7 +122,7 @@ use core::uint; use core::vec; use std::map::HashMap; use syntax::ast::*; -use syntax::codemap::span; +use codemap::span; use syntax::parse::token::special_idents; use syntax::print::pprust::{expr_to_str, block_to_str}; use syntax::visit::{fk_anon, fk_dtor, fk_fn_block, fk_item_fn, fk_method}; diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 7c1e96e5c0e44..2d5138e700e5e 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -59,7 +59,7 @@ use core::to_bytes; use core::uint; use syntax::ast::{m_imm, m_const, m_mutbl}; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; #[deriving_eq] diff --git a/src/librustc/middle/mode.rs b/src/librustc/middle/mode.rs index 149821db28938..6a05f6aa73695 100644 --- a/src/librustc/middle/mode.rs +++ b/src/librustc/middle/mode.rs @@ -33,7 +33,7 @@ use syntax::ast::{fn_decl, blk}; use syntax::visit; use syntax::visit::{fn_kind, vt}; use syntax::print::pprust; -use syntax::codemap::span; +use codemap::span; struct VisitContext { tcx: ctxt, diff --git a/src/librustc/middle/pat_util.rs b/src/librustc/middle/pat_util.rs index 5a4d36f1d10a9..3b416af3a1995 100644 --- a/src/librustc/middle/pat_util.rs +++ b/src/librustc/middle/pat_util.rs @@ -19,7 +19,7 @@ use syntax::ast_util; use syntax::ast_util::{path_to_ident, respan, walk_pat}; use syntax::fold; use syntax::fold::*; -use syntax::codemap::span; +use codemap::span; use std::map::HashMap; export pat_binding_ids, pat_bindings, pat_id_map, PatIdMap; diff --git a/src/librustc/middle/privacy.rs b/src/librustc/middle/privacy.rs index 401510328da0b..c6e1d9852c0c1 100644 --- a/src/librustc/middle/privacy.rs +++ b/src/librustc/middle/privacy.rs @@ -30,7 +30,7 @@ use syntax::ast_map::{node_item, node_method}; use syntax::ast_map; use syntax::ast_util::{Private, Public, has_legacy_export_attr, is_local}; use syntax::ast_util::{visibility_to_privacy}; -use syntax::codemap::span; +use codemap::span; use syntax::visit; fn check_crate(tcx: ty::ctxt, method_map: &method_map, crate: @ast::crate) { diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index dd355f6df702c..9afa1533e245d 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -34,7 +34,7 @@ use std::list; use std::list::list; use std::map::HashMap; use syntax::ast_map; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::{ast, visit}; diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 60ed64b1c1d5e..e8cd5f983a72b 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -58,7 +58,7 @@ use syntax::ast::{variant, view_item, view_item_export, view_item_import}; use syntax::ast::{view_item_use, view_path_glob, view_path_list}; use syntax::ast::{view_path_simple, visibility, anonymous, named, not}; use syntax::ast::{unsafe_fn}; -use syntax::ast_util::{def_id_of_def, dummy_sp, local_def}; +use syntax::ast_util::{def_id_of_def, local_def}; use syntax::ast_util::{path_to_ident, walk_pat, trait_method_to_ty_method}; use syntax::ast_util::{Privacy, Public, Private, visibility_to_privacy}; use syntax::ast_util::has_legacy_export_attr; @@ -66,7 +66,7 @@ use syntax::attr::{attr_metas, contains_name, attrs_contains_name}; use syntax::parse::token::ident_interner; use syntax::parse::token::special_idents; use syntax::print::pprust::{pat_to_str, path_to_str}; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; use syntax::visit::{default_visitor, fk_method, mk_vt, Visitor, visit_block}; use syntax::visit::{visit_crate, visit_expr, visit_expr_opt, visit_fn}; use syntax::visit::{visit_foreign_item, visit_item, visit_method_helper}; diff --git a/src/librustc/middle/trans/_match.rs b/src/librustc/middle/trans/_match.rs index db266464860c3..32a715ff6e992 100644 --- a/src/librustc/middle/trans/_match.rs +++ b/src/librustc/middle/trans/_match.rs @@ -168,9 +168,9 @@ use core::dvec; use std::map::HashMap; use syntax::ast::def_id; use syntax::ast; -use syntax::ast_util::{dummy_sp, path_to_ident}; +use syntax::ast_util::path_to_ident; use syntax::ast_util; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; use syntax::print::pprust::pat_to_str; fn macros() { include!("macros.rs"); } // FIXME(#3114): Macro import/export. diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 3bf1547a7d942..6fd624efa0dca 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -79,7 +79,7 @@ use std::{map, time, list}; use syntax::ast_map::{path, path_elt_to_str, path_mod, path_name}; use syntax::ast_util::{def_id_of_def, local_def, path_to_ident}; use syntax::attr; -use syntax::codemap::span; +use codemap::span; use syntax::diagnostic::expect; use syntax::parse::token::special_idents; use syntax::print::pprust::{expr_to_str, stmt_to_str, path_to_str}; @@ -1848,7 +1848,7 @@ fn trans_enum_variant(ccx: @crate_ctxt, ty: varg.ty, pat: ast_util::ident_to_pat( ccx.tcx.sess.next_node_id(), - ast_util::dummy_sp(), + codemap::dummy_sp(), special_idents::arg), id: varg.id, } @@ -1911,7 +1911,7 @@ fn trans_tuple_struct(ccx: @crate_ctxt, is_mutbl: false, ty: field.node.ty, pat: ast_util::ident_to_pat(ccx.tcx.sess.next_node_id(), - ast_util::dummy_sp(), + codemap::dummy_sp(), special_idents::arg), id: field.node.id } diff --git a/src/librustc/middle/trans/build.rs b/src/librustc/middle/trans/build.rs index 060bef1a44c62..371b126a9470d 100644 --- a/src/librustc/middle/trans/build.rs +++ b/src/librustc/middle/trans/build.rs @@ -23,7 +23,7 @@ use core::libc; use core::str; use core::vec; use std::map::HashMap; -use syntax::codemap; +use codemap; fn terminate(cx: block, _: &str) { unsafe { diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs index a3f07431bc8e8..69be40c5bf64a 100644 --- a/src/librustc/middle/trans/closure.rs +++ b/src/librustc/middle/trans/closure.rs @@ -31,7 +31,7 @@ use std::map::HashMap; use syntax::ast; use syntax::ast_map::{path, path_mod, path_name}; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::expr_to_str; // ___Good to know (tm)__________________________________________________ diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index 0128876a898f5..ccc7c0c5b24c3 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -55,7 +55,7 @@ use core::vec; use std::map::{HashMap, Set}; use syntax::ast::ident; use syntax::ast_map::path; -use syntax::codemap::span; +use codemap::span; use syntax::parse::token::ident_interner; use syntax::print::pprust::expr_to_str; use syntax::{ast, ast_map}; diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index 01533e162830f..29bf671794bdf 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -17,7 +17,8 @@ use middle::trans::consts; use middle::trans::expr; use middle::ty; -use syntax::{ast, ast_util, codemap, ast_map}; +use syntax::{ast, ast_util, ast_map}; +use codemap; fn const_lit(cx: @crate_ctxt, e: @ast::expr, lit: ast::lit) -> ValueRef { diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs index 6b368555637bb..f0191a4ba040b 100644 --- a/src/librustc/middle/trans/debuginfo.rs +++ b/src/librustc/middle/trans/debuginfo.rs @@ -29,9 +29,10 @@ use core::sys; use std::map::HashMap; use std::map; use syntax::ast::Ty; -use syntax::codemap::{span, CharPos}; +use codemap; +use codemap::{span, CharPos}; use syntax::parse::token::ident_interner; -use syntax::{ast, codemap, ast_util, ast_map}; +use syntax::{ast, ast_util, ast_map}; export create_local_var; export create_function; diff --git a/src/librustc/middle/trans/foreign.rs b/src/librustc/middle/trans/foreign.rs index ac641222b3c29..f6268f1562e16 100644 --- a/src/librustc/middle/trans/foreign.rs +++ b/src/librustc/middle/trans/foreign.rs @@ -35,7 +35,7 @@ use middle::ty::{FnTyBase, FnMeta, FnSig}; use util::ppaux::ty_to_str; use core::libc::c_uint; -use syntax::codemap::span; +use codemap::span; use syntax::{ast, ast_util}; use syntax::{attr, ast_map}; use syntax::parse::token::special_idents; diff --git a/src/librustc/middle/trans/reachable.rs b/src/librustc/middle/trans/reachable.rs index 29051837e4a0f..3fa7daebca85a 100644 --- a/src/librustc/middle/trans/reachable.rs +++ b/src/librustc/middle/trans/reachable.rs @@ -225,7 +225,7 @@ fn traverse_inline_body(cx: ctx, body: blk) { fn traverse_all_resources_and_impls(cx: ctx, crate_mod: _mod) { visit::visit_mod( - crate_mod, ast_util::dummy_sp(), 0, cx, + crate_mod, codemap::dummy_sp(), 0, cx, visit::mk_vt(@visit::Visitor { visit_expr: |_e, _cx, _v| { }, visit_item: |i, cx, v| { diff --git a/src/librustc/middle/trans/shape.rs b/src/librustc/middle/trans/shape.rs index 3403df6c1cc62..c974caf152ba1 100644 --- a/src/librustc/middle/trans/shape.rs +++ b/src/librustc/middle/trans/shape.rs @@ -28,8 +28,7 @@ use core::option::is_some; use core::vec; use std::map::HashMap; use syntax::ast; -use syntax::ast_util::dummy_sp; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; use syntax::util::interner; use ty_ctxt = middle::ty::ctxt; diff --git a/src/librustc/middle/trans/tvec.rs b/src/librustc/middle/trans/tvec.rs index eb2fd91e6051f..e3dab38d6cf63 100644 --- a/src/librustc/middle/trans/tvec.rs +++ b/src/librustc/middle/trans/tvec.rs @@ -24,7 +24,7 @@ use util::common::indenter; use util::ppaux::ty_to_str; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::{expr_to_str}; // Boxed vector types are in some sense currently a "shorthand" for a box diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 0726104788cda..8339c8382285a 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -46,7 +46,7 @@ use std::{map, smallintmap}; use syntax::ast::*; use syntax::ast_util::{is_local, local_def}; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::{ast, ast_map}; use syntax; diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs index 7e1c5f54134e1..fe807a1ed1904 100644 --- a/src/librustc/middle/typeck/astconv.rs +++ b/src/librustc/middle/typeck/astconv.rs @@ -67,7 +67,7 @@ use middle::typeck::{crate_ctxt, write_substs_to_tcx, write_ty_to_tcx}; use core::result; use core::vec; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::path_to_str; use util::common::indent; diff --git a/src/librustc/middle/typeck/check/_match.rs b/src/librustc/middle/typeck/check/_match.rs index ebfce27a4c8bb..9dd91ff5bce92 100644 --- a/src/librustc/middle/typeck/check/_match.rs +++ b/src/librustc/middle/typeck/check/_match.rs @@ -24,7 +24,7 @@ use std::map::HashMap; use syntax::ast; use syntax::ast_util::walk_pat; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; fn check_match(fcx: @fn_ctxt, diff --git a/src/librustc/middle/typeck/check/demand.rs b/src/librustc/middle/typeck/check/demand.rs index c8a644fef101c..65869435dcb4a 100644 --- a/src/librustc/middle/typeck/check/demand.rs +++ b/src/librustc/middle/typeck/check/demand.rs @@ -16,7 +16,7 @@ use middle::typeck::infer; use core::result::{Err, Ok}; use core::result; use syntax::ast; -use syntax::codemap::span; +use codemap::span; // Requires that the two types unify, and prints an error message if they // don't. diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 86f58edd6c8a8..1b3025c5431f5 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -108,8 +108,7 @@ use syntax::ast::{m_const, m_mutbl, m_imm}; use syntax::ast; use syntax::ast_map; use syntax::ast_map::node_id_to_str; -use syntax::ast_util::dummy_sp; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; fn lookup( fcx: @fn_ctxt, diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index cf13fcb86e818..a5007e6c66c12 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -124,8 +124,8 @@ use syntax::ast_map; use syntax::ast_util::{Private, Public, is_local, local_def, respan}; use syntax::ast_util::{visibility_to_privacy}; use syntax::ast_util; -use syntax::codemap::span; -use syntax::codemap; +use codemap::span; +use codemap; use syntax::parse::token::special_idents; use syntax::print::pprust; use syntax::visit; @@ -560,7 +560,7 @@ fn check_struct(ccx: @crate_ctxt, struct_def: @ast::struct_def, def_id: local_def(id), explicit_self: spanned { node: ast::sty_by_ref, - span: ast_util::dummy_sp() } }; + span: codemap::dummy_sp() } }; // typecheck the dtor let dtor_dec = ast_util::dtor_dec(); check_bare_fn(ccx, &dtor_dec, diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs index 43c1cb7816694..7e3097e3c938f 100644 --- a/src/librustc/middle/typeck/check/regionck.rs +++ b/src/librustc/middle/typeck/check/regionck.rs @@ -45,7 +45,7 @@ use core::result; use syntax::ast::{ProtoBare, ProtoBox, ProtoUniq, ProtoBorrowed}; use syntax::ast::{def_arg, def_binding, def_local, def_self, def_upvar}; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust; use syntax::visit; @@ -533,7 +533,7 @@ mod guarantor { use middle::typeck::check::regionck::{rcx, infallibly_mk_subr}; use middle::ty; use syntax::ast; - use syntax::codemap::span; + use codemap::span; use util::ppaux::{ty_to_str}; pub fn for_addr_of(rcx: @rcx, expr: @ast::expr, base: @ast::expr) { diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs index 9d309d4996bdd..d378b520f9149 100644 --- a/src/librustc/middle/typeck/check/vtable.rs +++ b/src/librustc/middle/typeck/check/vtable.rs @@ -30,7 +30,7 @@ use result::{Result, Ok, Err}; use std::map::HashMap; use syntax::ast; use syntax::ast_util; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::expr_to_str; use syntax::print::pprust; use syntax::visit; diff --git a/src/librustc/middle/typeck/check/writeback.rs b/src/librustc/middle/typeck/check/writeback.rs index e5dc91b7f179a..70ccfc690cab4 100644 --- a/src/librustc/middle/typeck/check/writeback.rs +++ b/src/librustc/middle/typeck/check/writeback.rs @@ -29,7 +29,7 @@ use core::result::{Result, Ok, Err}; use core::vec; use std::map::HashMap; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::pat_to_str; use syntax::visit; diff --git a/src/librustc/middle/typeck/coherence.rs b/src/librustc/middle/typeck/coherence.rs index b0c98cfa2b17e..203dc3fe6d41b 100644 --- a/src/librustc/middle/typeck/coherence.rs +++ b/src/librustc/middle/typeck/coherence.rs @@ -45,9 +45,9 @@ use syntax::ast::{trait_ref}; use syntax::ast; use syntax::ast_map::node_item; use syntax::ast_map; -use syntax::ast_util::{def_id_of_def, dummy_sp, local_def}; +use syntax::ast_util::{def_id_of_def, local_def}; use syntax::attr; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; use syntax::parse; use syntax::visit::{default_simple_visitor, default_visitor}; use syntax::visit::{mk_simple_visitor, mk_vt, visit_crate, visit_item}; diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs index ba34846ca97ce..3e6e44bb85041 100644 --- a/src/librustc/middle/typeck/collect.rs +++ b/src/librustc/middle/typeck/collect.rs @@ -56,8 +56,8 @@ use syntax::ast_map; use syntax::ast_util::{local_def, split_trait_methods}; use syntax::ast_util::{trait_method_to_ty_method}; use syntax::ast_util; -use syntax::codemap::span; -use syntax::codemap; +use codemap::span; +use codemap; use syntax::print::pprust::path_to_str; use syntax::visit; diff --git a/src/librustc/middle/typeck/infer/combine.rs b/src/librustc/middle/typeck/infer/combine.rs index e9946ae7c13e6..8de4c9dc1b9ab 100644 --- a/src/librustc/middle/typeck/infer/combine.rs +++ b/src/librustc/middle/typeck/infer/combine.rs @@ -70,7 +70,7 @@ use core::result::{iter_vec2, map_vec2}; use core::vec; use syntax::ast::{Onceness, purity, ret_style}; use syntax::ast; -use syntax::codemap::span; +use codemap::span; fn macros() { include!("macros.rs"); } // FIXME(#3114): Macro import/export. diff --git a/src/librustc/middle/typeck/infer/mod.rs b/src/librustc/middle/typeck/infer/mod.rs index cac5fa5feb1c1..db1c89c7e8619 100644 --- a/src/librustc/middle/typeck/infer/mod.rs +++ b/src/librustc/middle/typeck/infer/mod.rs @@ -284,9 +284,8 @@ use syntax::ast::{ret_style, purity}; use syntax::ast::{m_const, m_imm, m_mutbl}; use syntax::ast::{unsafe_fn, impure_fn, pure_fn, extern_fn}; use syntax::ast; -use syntax::ast_util::dummy_sp; use syntax::ast_util; -use syntax::codemap::span; +use codemap::{span, dummy_sp}; export InferCtxt; export new_infer_ctxt; @@ -430,7 +429,7 @@ fn can_mk_subty(cx: @InferCtxt, a: ty::t, b: ty::t) -> ures { debug!("can_mk_subty(%s <: %s)", a.inf_str(cx), b.inf_str(cx)); do indent { do cx.probe { - cx.sub(true, ast_util::dummy_sp()).tys(a, b) + cx.sub(true, dummy_sp()).tys(a, b) } }.to_ures() } @@ -471,7 +470,7 @@ fn can_mk_coercety(cx: @InferCtxt, a: ty::t, b: ty::t) -> ures { debug!("can_mk_coercety(%s -> %s)", a.inf_str(cx), b.inf_str(cx)); do indent { do cx.probe { - let span = ast_util::dummy_sp(); + let span = dummy_sp(); Coerce(cx.combine_fields(true, span)).tys(a, b) } }.to_ures() diff --git a/src/librustc/middle/typeck/infer/region_inference.rs b/src/librustc/middle/typeck/infer/region_inference.rs index 1113029a13706..0c7cc807628fa 100644 --- a/src/librustc/middle/typeck/infer/region_inference.rs +++ b/src/librustc/middle/typeck/infer/region_inference.rs @@ -548,7 +548,7 @@ use middle::ty::{Region, RegionVid, re_static, re_infer, re_free, re_bound}; use middle::ty::{re_scope, ReVar, ReSkolemized, br_fresh}; use middle::typeck::infer::to_str::InferStr; use middle::typeck::infer::cres; -use syntax::codemap; +use codemap; use util::common::indenter; use util::ppaux::note_and_explain_region; @@ -562,8 +562,8 @@ use result::{Ok, Err}; use std::map::HashMap; use std::cell::{Cell, empty_cell}; use std::list::{List, Nil, Cons}; -use syntax::codemap::span; -use syntax::codemap; +use codemap::span; +use codemap; export RegionVarBindings; export make_subregion; diff --git a/src/librustc/middle/typeck/infer/test.rs b/src/librustc/middle/typeck/infer/test.rs index 5f85d6c4268e2..32a54e891d1b4 100644 --- a/src/librustc/middle/typeck/infer/test.rs +++ b/src/librustc/middle/typeck/infer/test.rs @@ -31,7 +31,7 @@ use std::getopts::{opt_present}; use std::getopts; use std::getopts; use std::map::HashMap; -use syntax::ast_util::dummy_sp; +use codemap::dummy_sp; use syntax::parse::parse_crate_from_source_str; use syntax::{ast, attr, parse}; diff --git a/src/librustc/middle/typeck/mod.rs b/src/librustc/middle/typeck/mod.rs index 142f1e989a037..149430d114ff3 100644 --- a/src/librustc/middle/typeck/mod.rs +++ b/src/librustc/middle/typeck/mod.rs @@ -76,7 +76,7 @@ use syntax::ast::{provided, required, spanned}; use syntax::ast_map::node_id_to_str; use syntax::ast_util::{has_legacy_export_attr}; use syntax::ast_util::{local_def, respan, split_trait_methods}; -use syntax::codemap::span; +use codemap::span; use syntax::print::pprust::*; use syntax::visit; use syntax::{ast, ast_util, ast_map}; diff --git a/src/librustc/middle/typeck/rscope.rs b/src/librustc/middle/typeck/rscope.rs index f1655f2a363b1..bb19eaec394d9 100644 --- a/src/librustc/middle/typeck/rscope.rs +++ b/src/librustc/middle/typeck/rscope.rs @@ -15,7 +15,7 @@ use middle::ty; use core::result::Result; use core::result; use syntax::ast; -use syntax::codemap::span; +use codemap::span; use syntax::parse::token::special_idents; trait region_scope { diff --git a/src/librustc/rustc.rc b/src/librustc/rustc.rc index 818c6eb04ea88..6e7a8379a9cdd 100644 --- a/src/librustc/rustc.rc +++ b/src/librustc/rustc.rc @@ -34,6 +34,8 @@ use core::*; extern mod std(vers = "0.6"); extern mod syntax(vers = "0.6"); +extern mod codemap; + /* Alternate names for some modules. @@ -202,7 +204,7 @@ use std::getopts; use std::map::HashMap; use getopts::{opt_present}; use getopts::groups; -use syntax::codemap; +use codemap; use syntax::diagnostic; use driver::driver::{host_triple, optgroups, early_error, str_input, file_input, build_session_options, diff --git a/src/librustc/util/common.rs b/src/librustc/util/common.rs index 2017af05e3599..36b13c7efc93c 100644 --- a/src/librustc/util/common.rs +++ b/src/librustc/util/common.rs @@ -11,7 +11,7 @@ use core::prelude::*; use syntax::ast; -use syntax::codemap::{span}; +use codemap::{span}; use syntax::visit; use syntax::print; use syntax; diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index ac079f8f04450..3810b7a0ffae0 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -27,8 +27,8 @@ use middle::ty::{ty_ptr, ty_rec, ty_rptr, ty_self, ty_tup}; use middle::ty::{ty_type, ty_uniq, ty_uint, ty_infer}; use middle::ty::{ty_unboxed_vec}; use metadata::encoder; -use syntax::codemap; -use syntax::codemap::span; +use codemap; +use codemap::span; use syntax::print::pprust; use syntax::print::pprust::{path_to_str, proto_to_str, mode_to_str}; use syntax::{ast, ast_util}; diff --git a/src/librustdoc/astsrv.rs b/src/librustdoc/astsrv.rs index 99cf301f18248..b1950620559dc 100644 --- a/src/librustdoc/astsrv.rs +++ b/src/librustdoc/astsrv.rs @@ -34,7 +34,7 @@ use rustc::metadata::filesearch; use std::map::HashMap; use syntax::ast; use syntax::ast_map; -use syntax::codemap; +use codemap; use syntax::diagnostic::handler; use syntax::diagnostic; use syntax; diff --git a/src/librustdoc/attr_parser.rs b/src/librustdoc/attr_parser.rs index 311245ccc345d..1474114e62a17 100644 --- a/src/librustdoc/attr_parser.rs +++ b/src/librustdoc/attr_parser.rs @@ -22,7 +22,7 @@ use core::tuple; use core::vec; use syntax::ast; use syntax::attr; -use syntax::codemap; +use codemap; use syntax; pub type CrateAttrs = { @@ -40,7 +40,7 @@ mod test { use syntax::parse; use syntax::parse::parser; use syntax::parse::attr::parser_attr; - use syntax::codemap; + use codemap; use syntax::diagnostic; let parse_sess = syntax::parse::new_parse_sess(None); diff --git a/src/librustdoc/parse.rs b/src/librustdoc/parse.rs index 48eb3d47a167a..a12140b64608a 100644 --- a/src/librustdoc/parse.rs +++ b/src/librustdoc/parse.rs @@ -16,7 +16,7 @@ use rustc::driver::driver::{file_input, str_input}; use rustc::driver::driver; use rustc::driver::session; use syntax::ast; -use syntax::codemap; +use codemap; use syntax::diagnostic; use syntax::parse; diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 23ea27e7c5cfc..45bf724b0a56b 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -13,7 +13,8 @@ use core::prelude::*; use ast::*; use ast; use ast_util; -use codemap::{span, BytePos}; +use codemap::{span, BytePos, dummy_sp}; +use codemap::mk_sp; use parse::token; use visit; @@ -36,15 +37,6 @@ pure fn dummy_spanned(+t: T) -> spanned { respan(dummy_sp(), move t) } -/* assuming that we're not in macro expansion */ -pure fn mk_sp(+lo: BytePos, +hi: BytePos) -> span { - span {lo: lo, hi: hi, expn_info: None} -} - -// make this a const, once the compiler supports it -pure fn dummy_sp() -> span { return mk_sp(BytePos(0), BytePos(0)); } - - pure fn path_name_i(idents: &[ident], intr: @token::ident_interner) -> ~str { // FIXME: Bad copies (#2543 -- same for everything else that says "bad") diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index 7a7c2312f5640..464e8acb0cee8 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// Linkage attributes + /*! The CodeMap tracks all the source code used within a single crate, mapping @@ -21,9 +23,24 @@ source code snippets, etc. */ -use core::prelude::*; +#[warn(vecs_implicitly_copyable)]; +#[warn(deprecated_mode)]; +#[warn(deprecated_pattern)]; + + +#[ link(name = "codemap", + vers = "1.0", + uuid = "A0F4AB1E-002B-4CF2-A280-5DE62C8E13A3") ]; + +#[ crate_type = "lib" ]; -use ast_util; +#[no_core]; +extern mod core(vers = "0.6"); +extern mod std(vers = "0.6"); + +use std::serialize::{Encodable, Decodable, Encoder, Decoder}; + +use core::prelude::*; use core::cmp; use core::dvec::DVec; @@ -144,10 +161,19 @@ impl span: Encodable { impl span: Decodable { static fn decode(_d: &D) -> span { - ast_util::dummy_sp() + dummy_sp() } } +// assuming that we're not in macro expansion +pub pure fn mk_sp(+lo: BytePos, +hi: BytePos) -> span { + span {lo: lo, hi: hi, expn_info: None} +} + +// make this a const, once the compiler supports it +pub pure 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 @@ -204,10 +230,18 @@ pub struct FileMap { } pub impl FileMap { + // register a start-of-line offset in the table of line-beginnings. + // UNCHECKED INVARIANT: these offsets must be added in the right + // order and must be in the right places; there is shared knowledge + // about what ends a line between this file and parse.rs fn next_line(&self, +pos: BytePos) { + // the new charpos must be > the last one (or it's the first one). + assert ((self.lines.len() == 0) + || (self.lines[self.lines.len() - 1] < pos)); self.lines.push(pos); } + // get a line from the list of pre-computed line-beginnings pub fn get_line(&self, line: int) -> ~str { unsafe { let begin: BytePos = self.lines[line] - self.start_pos; @@ -242,11 +276,11 @@ pub impl CodeMap { } /// Add a new FileMap to the CodeMap and return it - fn new_filemap(+filename: FileName, src: @~str) -> @FileMap { + fn new_filemap(&self, filename: FileName, src: @~str) -> @FileMap { return self.new_filemap_w_substr(filename, FssNone, src); } - fn new_filemap_w_substr(+filename: FileName, +substr: FileSubstr, + fn new_filemap_w_substr(&self, filename: FileName, substr: FileSubstr, src: @~str) -> @FileMap { let start_pos = if self.files.len() == 0 { 0 @@ -275,7 +309,7 @@ pub impl CodeMap { } /// Lookup source information about a BytePos - pub fn lookup_char_pos(&self, +pos: BytePos) -> Loc { + pub fn lookup_char_pos(&self, pos: BytePos) -> Loc { return self.lookup_pos(pos); } @@ -319,7 +353,7 @@ pub impl CodeMap { } pub fn span_to_str(&self, sp: span) -> ~str { - if self.files.len() == 0 && sp == ast_util::dummy_sp() { + if self.files.len() == 0 && sp == dummy_sp() { return ~"no-location"; } @@ -363,7 +397,7 @@ pub impl CodeMap { priv impl CodeMap { - fn lookup_filemap_idx(&self, +pos: BytePos) -> uint { + fn lookup_filemap_idx(&self, pos: BytePos) -> uint { let len = self.files.len(); let mut a = 0u; let mut b = len; @@ -383,7 +417,7 @@ priv impl CodeMap { return a; } - fn lookup_line(&self, +pos: BytePos) + fn lookup_line(&self, pos: BytePos) -> {fm: @FileMap, line: uint} { let idx = self.lookup_filemap_idx(pos); @@ -397,7 +431,7 @@ priv impl CodeMap { return {fm: f, line: a}; } - fn lookup_pos(&self, +pos: BytePos) -> Loc { + fn lookup_pos(&self, pos: BytePos) -> Loc { let {fm: f, line: a} = self.lookup_line(pos); let line = a + 1u; // Line numbers start at 1 let chpos = self.bytepos_to_local_charpos(pos); @@ -423,7 +457,7 @@ priv impl CodeMap { lo.line, lo.col.to_uint(), hi.line, hi.col.to_uint()) } - fn lookup_byte_offset(&self, +bpos: BytePos) + fn lookup_byte_offset(&self, bpos: BytePos) -> {fm: @FileMap, pos: BytePos} { let idx = self.lookup_filemap_idx(bpos); let fm = self.files[idx]; @@ -433,7 +467,7 @@ priv impl CodeMap { // Converts an absolute BytePos to a CharPos relative to the file it is // located in - fn bytepos_to_local_charpos(&self, +bpos: BytePos) -> CharPos { + fn bytepos_to_local_charpos(&self, bpos: BytePos) -> CharPos { debug!("codemap: converting %? to char pos", bpos); let idx = self.lookup_filemap_idx(bpos); let map = self.files[idx]; @@ -458,6 +492,36 @@ priv impl CodeMap { } } +#[cfg(test)] +mod test { + use super::*; + extern mod testingfuns; + use testingfuns::check_equal; + + #[test] + fn t1 () { + let cm = CodeMap::new(); + let fm = cm.new_filemap(~"blork.rs",@~"first line.\nsecond line"); + fm.next_line(BytePos(0)); + check_equal(&fm.get_line(0),&~"first line."); + // TESTING BROKEN BEHAVIOR: + fm.next_line(BytePos(10)); + check_equal(&fm.get_line(1),&~"."); + } + + #[test] + #[should_fail] + fn t2 () { + let cm = CodeMap::new(); + let fm = cm.new_filemap(~"blork.rs",@~"first line.\nsecond line"); + // TESTING *REALLY* BROKEN BEHAVIOR: + fm.next_line(BytePos(0)); + fm.next_line(BytePos(10)); + fm.next_line(BytePos(2)); + } +} + + // // Local Variables: // mode: rust diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index a8c05296390b5..c50a5d1dc0cff 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -11,9 +11,8 @@ use core::prelude::*; use ast; -use ast_util::dummy_sp; use codemap; -use codemap::{CodeMap, span, ExpnInfo, ExpandedFrom}; +use codemap::{CodeMap, span, ExpnInfo, ExpandedFrom, dummy_sp}; use diagnostic::span_handler; use ext; use parse; diff --git a/src/libsyntax/ext/pipes/ast_builder.rs b/src/libsyntax/ext/pipes/ast_builder.rs index 343ce4b039b51..91440f957e241 100644 --- a/src/libsyntax/ext/pipes/ast_builder.rs +++ b/src/libsyntax/ext/pipes/ast_builder.rs @@ -17,10 +17,10 @@ use core::prelude::*; use ast::{ident, node_id}; use ast; -use ast_util::{ident_to_path, respan, dummy_sp}; +use ast_util::{ident_to_path, respan}; use ast_util; use attr; -use codemap::span; +use codemap::{span, dummy_sp}; use ext::base::{ext_ctxt, mk_ctxt}; use ext::quote::rt::*; @@ -329,19 +329,19 @@ impl ext_ctxt: ext_ctxt_ast_builder { self.ident_of(~"kinds"), self.ident_of(~"Owned") ], - ast_util::dummy_sp() + dummy_sp() ), ast::type_value_ns, self.next_id() ), - span: ast_util::dummy_sp() + span: dummy_sp() } ]); let vi = @ast::view_item { node: vi, attrs: ~[], vis: ast::private, - span: ast_util::dummy_sp() + span: dummy_sp() }; self.item( diff --git a/src/libsyntax/ext/pipes/pipec.rs b/src/libsyntax/ext/pipes/pipec.rs index e53057cb312e3..b55709cbbba5b 100644 --- a/src/libsyntax/ext/pipes/pipec.rs +++ b/src/libsyntax/ext/pipes/pipec.rs @@ -11,7 +11,7 @@ // A protocol compiler for Rust. use ast::ident; -use ast_util::dummy_sp; +use codemap::dummy_sp; use ext::base::ext_ctxt; use ext::pipes::ast_builder::{append_types, path, path_global}; use ext::pipes::proto::*; diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 2449db17c0f47..50709815c6ed3 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -10,8 +10,8 @@ // Earley-like parser for macros. use ast::{matcher, match_tok, match_seq, match_nonterminal, ident}; -use ast_util::mk_sp; use codemap::BytePos; +use codemap::{dummy_sp, mk_sp}; use codemap; use parse::common::*; //resolve bug? use parse::lexer::*; //resolve bug? diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index bcaa7679a5aab..4f9df628c159e 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -13,8 +13,7 @@ use core::prelude::*; use ast::{ident, matcher_, matcher, match_tok, match_nonterminal, match_seq}; use ast::{tt_delim}; use ast; -use ast_util::dummy_sp; -use codemap::span; +use codemap::{span, dummy_sp}; use ext::base::{ext_ctxt, MacResult, MRAny, MRDef, MacroDef, NormalTT}; use ext::base; use ext::tt::macro_parser::{error}; diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 47489034a0f51..d4d0e4091f8b2 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -12,7 +12,7 @@ use core::prelude::*; use ast; use ast::{token_tree, tt_delim, tt_tok, tt_seq, tt_nonterminal,ident}; -use ast_util; +use codemap; use codemap::span; use diagnostic::span_handler; use ext::tt::macro_parser::{named_match, matched_seq, matched_nonterminal}; @@ -71,7 +71,7 @@ fn new_tt_reader(sp_diag: span_handler, itr: @ident_interner, mut repeat_len: ~[], /* dummy values, never read: */ mut cur_tok: EOF, - mut cur_span: ast_util::dummy_sp() + mut cur_span: codemap::dummy_sp() }; tt_next_token(r); /* get cur_tok and cur_span set up */ return r; diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs index 66c3111b30960..3b02f5a703b09 100644 --- a/src/libsyntax/parse/comments.rs +++ b/src/libsyntax/parse/comments.rs @@ -14,7 +14,7 @@ use ast; use codemap::{BytePos, CharPos, CodeMap, FileMap}; use diagnostic; use parse::lexer::{is_whitespace, get_str_from, reader}; -use parse::lexer::{string_reader, bump, is_eof, nextch}; +use parse::lexer::{StringReader, bump, is_eof, nextch}; use parse::lexer; use parse::token; use parse; @@ -127,7 +127,7 @@ fn strip_doc_comment_decoration(comment: ~str) -> ~str { fail ~"not a doc-comment: " + comment; } -fn read_to_eol(rdr: string_reader) -> ~str { +fn read_to_eol(rdr: StringReader) -> ~str { let mut val = ~""; while rdr.curr != '\n' && !is_eof(rdr) { str::push_char(&mut val, rdr.curr); @@ -137,26 +137,26 @@ fn read_to_eol(rdr: string_reader) -> ~str { return val; } -fn read_one_line_comment(rdr: string_reader) -> ~str { +fn read_one_line_comment(rdr: StringReader) -> ~str { let val = read_to_eol(rdr); assert ((val[0] == '/' as u8 && val[1] == '/' as u8) || (val[0] == '#' as u8 && val[1] == '!' as u8)); return val; } -fn consume_non_eol_whitespace(rdr: string_reader) { +fn consume_non_eol_whitespace(rdr: StringReader) { while is_whitespace(rdr.curr) && rdr.curr != '\n' && !is_eof(rdr) { bump(rdr); } } -fn push_blank_line_comment(rdr: string_reader, comments: &mut ~[cmnt]) { +fn push_blank_line_comment(rdr: StringReader, comments: &mut ~[cmnt]) { debug!(">>> blank-line comment"); let v: ~[~str] = ~[]; comments.push({style: blank_line, lines: v, pos: rdr.last_pos}); } -fn consume_whitespace_counting_blank_lines(rdr: string_reader, +fn consume_whitespace_counting_blank_lines(rdr: StringReader, comments: &mut ~[cmnt]) { while is_whitespace(rdr.curr) && !is_eof(rdr) { if rdr.col == CharPos(0u) && rdr.curr == '\n' { @@ -167,7 +167,7 @@ fn consume_whitespace_counting_blank_lines(rdr: string_reader, } -fn read_shebang_comment(rdr: string_reader, code_to_the_left: bool, +fn read_shebang_comment(rdr: StringReader, code_to_the_left: bool, comments: &mut ~[cmnt]) { debug!(">>> shebang comment"); let p = rdr.last_pos; @@ -179,7 +179,7 @@ fn read_shebang_comment(rdr: string_reader, code_to_the_left: bool, }); } -fn read_line_comments(rdr: string_reader, code_to_the_left: bool, +fn read_line_comments(rdr: StringReader, code_to_the_left: bool, comments: &mut ~[cmnt]) { debug!(">>> line comments"); let p = rdr.last_pos; @@ -228,7 +228,7 @@ fn trim_whitespace_prefix_and_push_line(lines: &mut ~[~str], lines.push(s1); } -fn read_block_comment(rdr: string_reader, code_to_the_left: bool, +fn read_block_comment(rdr: StringReader, code_to_the_left: bool, comments: &mut ~[cmnt]) { debug!(">>> block comment"); let p = rdr.last_pos; @@ -287,13 +287,13 @@ fn read_block_comment(rdr: string_reader, code_to_the_left: bool, comments.push({style: style, lines: lines, pos: p}); } -fn peeking_at_comment(rdr: string_reader) -> bool { +fn peeking_at_comment(rdr: StringReader) -> bool { return ((rdr.curr == '/' && nextch(rdr) == '/') || (rdr.curr == '/' && nextch(rdr) == '*')) || (rdr.curr == '#' && nextch(rdr) == '!'); } -fn consume_comment(rdr: string_reader, code_to_the_left: bool, +fn consume_comment(rdr: StringReader, code_to_the_left: bool, comments: &mut ~[cmnt]) { debug!(">>> consume comment"); if rdr.curr == '/' && nextch(rdr) == '/' { diff --git a/src/libsyntax/parse/eval.rs b/src/libsyntax/parse/eval.rs index c29fe773b3fd5..e31d3dde108ca 100644 --- a/src/libsyntax/parse/eval.rs +++ b/src/libsyntax/parse/eval.rs @@ -79,7 +79,7 @@ fn parse_companion_mod(cx: ctx, prefix: &Path, suffix: &Option) // XXX: Using a dummy span, but this code will go away soon let p0 = new_sub_parser_from_file(cx.sess, cx.cfg, modpath, - ast_util::dummy_sp()); + codemap::dummy_sp()); let inner_attrs = p0.parse_inner_attrs_and_next(); let m0 = p0.parse_mod_items(token::EOF, inner_attrs.next); return (m0.view_items, m0.items, inner_attrs.inner); diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index 1574a037a4638..1a6e705266e2b 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -26,7 +26,7 @@ use core::u64; use std; -export reader, string_reader, new_string_reader, is_whitespace; +export reader, StringReader, new_string_reader, is_whitespace; export tt_reader, new_tt_reader; export nextch, is_eof, bump, get_str_from, new_low_level_string_reader; export string_reader_as_reader, tt_reader_as_reader; @@ -41,7 +41,9 @@ trait reader { fn dup() -> reader; } -type string_reader = @{ +type StringReader = @StringReader_; + +struct StringReader_ { span_diagnostic: span_handler, src: @~str, // The absolute offset within the codemap of the next character to read @@ -57,11 +59,11 @@ type string_reader = @{ /* cached: */ mut peek_tok: token::Token, mut peek_span: span -}; +} fn new_string_reader(span_diagnostic: span_handler, filemap: @codemap::FileMap, - itr: @token::ident_interner) -> string_reader { + itr: @token::ident_interner) -> StringReader { let r = new_low_level_string_reader(span_diagnostic, filemap, itr); string_advance_token(r); /* fill in peek_* */ return r; @@ -71,24 +73,25 @@ fn new_string_reader(span_diagnostic: span_handler, fn new_low_level_string_reader(span_diagnostic: span_handler, filemap: @codemap::FileMap, itr: @token::ident_interner) - -> string_reader { + -> StringReader { // Force the initial reader bump to start on a fresh line let initial_char = '\n'; - let r = @{span_diagnostic: span_diagnostic, src: filemap.src, - mut pos: filemap.start_pos, - mut last_pos: filemap.start_pos, - mut col: CharPos(0), - mut curr: initial_char, - filemap: filemap, interner: itr, - /* dummy values; not read */ - mut peek_tok: token::EOF, - mut peek_span: ast_util::dummy_sp()}; + let r = @StringReader_{ + span_diagnostic: span_diagnostic, src: filemap.src, + mut pos: filemap.start_pos, + mut last_pos: filemap.start_pos, + mut col: CharPos(0), + mut curr: initial_char, + filemap: filemap, interner: itr, + /* dummy values; not read */ + mut peek_tok: token::EOF, + mut peek_span: codemap::dummy_sp()}; bump(r); return r; } -fn dup_string_reader(&&r: string_reader) -> string_reader { - @{span_diagnostic: r.span_diagnostic, src: r.src, +fn dup_string_reader(&&r: StringReader) -> StringReader { + @StringReader_{span_diagnostic: r.span_diagnostic, src: r.src, mut pos: r.pos, mut last_pos: r.last_pos, mut col: r.col, mut curr: r.curr, @@ -96,7 +99,7 @@ fn dup_string_reader(&&r: string_reader) -> string_reader { mut peek_tok: r.peek_tok, mut peek_span: r.peek_span} } -impl string_reader: reader { +impl StringReader: reader { fn is_eof() -> bool { is_eof(self) } fn next_token() -> {tok: token::Token, sp: span} { let ret_val = {tok: self.peek_tok, sp: self.peek_span}; @@ -136,7 +139,7 @@ impl tt_reader: reader { fn dup() -> reader { dup_tt_reader(self) as reader } } -fn string_advance_token(&&r: string_reader) { +fn string_advance_token(&&r: StringReader) { for consume_whitespace_and_comments(r).each |comment| { r.peek_tok = comment.tok; r.peek_span = comment.sp; @@ -153,11 +156,11 @@ fn string_advance_token(&&r: string_reader) { } -fn byte_offset(rdr: string_reader) -> BytePos { +fn byte_offset(rdr: StringReader) -> BytePos { (rdr.pos - rdr.filemap.start_pos) } -fn get_str_from(rdr: string_reader, start: BytePos) -> ~str { +fn get_str_from(rdr: StringReader, start: BytePos) -> ~str { unsafe { // I'm pretty skeptical about this subtraction. What if there's a // multi-byte character before the mark? @@ -166,7 +169,7 @@ fn get_str_from(rdr: string_reader, start: BytePos) -> ~str { } } -fn bump(rdr: string_reader) { +fn bump(rdr: StringReader) { rdr.last_pos = rdr.pos; let current_byte_offset = byte_offset(rdr).to_uint();; if current_byte_offset < (*rdr.src).len() { @@ -190,10 +193,10 @@ fn bump(rdr: string_reader) { rdr.curr = -1 as char; } } -fn is_eof(rdr: string_reader) -> bool { +fn is_eof(rdr: StringReader) -> bool { rdr.curr == -1 as char } -fn nextch(rdr: string_reader) -> char { +fn nextch(rdr: StringReader) -> char { let offset = byte_offset(rdr).to_uint(); if offset < (*rdr.src).len() { return str::char_at(*rdr.src, offset); @@ -237,14 +240,14 @@ fn is_hex_digit(c: char) -> bool { fn is_bin_digit(c: char) -> bool { return c == '0' || c == '1'; } // might return a sugared-doc-attr -fn consume_whitespace_and_comments(rdr: string_reader) +fn consume_whitespace_and_comments(rdr: StringReader) -> Option<{tok: token::Token, sp: span}> { while is_whitespace(rdr.curr) { bump(rdr); } return consume_any_line_comment(rdr); } // might return a sugared-doc-attr -fn consume_any_line_comment(rdr: string_reader) +fn consume_any_line_comment(rdr: StringReader) -> Option<{tok: token::Token, sp: span}> { if rdr.curr == '/' { match nextch(rdr) { @@ -287,7 +290,7 @@ fn consume_any_line_comment(rdr: string_reader) } // might return a sugared-doc-attr -fn consume_block_comment(rdr: string_reader) +fn consume_block_comment(rdr: StringReader) -> Option<{tok: token::Token, sp: span}> { // block comments starting with "/**" or "/*!" are doc-comments @@ -326,7 +329,7 @@ fn consume_block_comment(rdr: string_reader) return consume_whitespace_and_comments(rdr); } -fn scan_exponent(rdr: string_reader) -> Option<~str> { +fn scan_exponent(rdr: StringReader) -> Option<~str> { let mut c = rdr.curr; let mut rslt = ~""; if c == 'e' || c == 'E' { @@ -344,7 +347,7 @@ fn scan_exponent(rdr: string_reader) -> Option<~str> { } else { return None::<~str>; } } -fn scan_digits(rdr: string_reader, radix: uint) -> ~str { +fn scan_digits(rdr: StringReader, radix: uint) -> ~str { let mut rslt = ~""; loop { let c = rdr.curr; @@ -359,7 +362,7 @@ fn scan_digits(rdr: string_reader, radix: uint) -> ~str { }; } -fn scan_number(c: char, rdr: string_reader) -> token::Token { +fn scan_number(c: char, rdr: StringReader) -> token::Token { let mut num_str, base = 10u, c = c, n = nextch(rdr); if c == '0' && n == 'x' { bump(rdr); @@ -468,7 +471,7 @@ fn scan_number(c: char, rdr: string_reader) -> token::Token { } } -fn scan_numeric_escape(rdr: string_reader, n_hex_digits: uint) -> char { +fn scan_numeric_escape(rdr: StringReader, n_hex_digits: uint) -> char { let mut accum_int = 0, i = n_hex_digits; while i != 0u { let n = rdr.curr; @@ -483,7 +486,7 @@ fn scan_numeric_escape(rdr: string_reader, n_hex_digits: uint) -> char { return accum_int as char; } -fn next_token_inner(rdr: string_reader) -> token::Token { +fn next_token_inner(rdr: StringReader) -> token::Token { let mut accum_str = ~""; let mut c = rdr.curr; if (c >= 'a' && c <= 'z') @@ -508,7 +511,7 @@ fn next_token_inner(rdr: string_reader) -> token::Token { if is_dec_digit(c) { return scan_number(c, rdr); } - fn binop(rdr: string_reader, op: token::binop) -> token::Token { + fn binop(rdr: StringReader, op: token::binop) -> token::Token { bump(rdr); if rdr.curr == '=' { bump(rdr); @@ -701,7 +704,7 @@ fn next_token_inner(rdr: string_reader) -> token::Token { } } -fn consume_whitespace(rdr: string_reader) { +fn consume_whitespace(rdr: StringReader) { while is_whitespace(rdr.curr) && !is_eof(rdr) { bump(rdr); } } diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index b14b60af1345c..2528e38ff3db5 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -16,7 +16,7 @@ use codemap::{span, CodeMap, FileMap, CharPos, BytePos}; use codemap; use diagnostic::{span_handler, mk_span_handler, mk_handler, emitter}; use parse::attr::parser_attr; -use parse::lexer::{reader, string_reader}; +use parse::lexer::{reader, StringReader}; use parse::parser::Parser; use parse::token::{ident_interner, mk_ident_interner}; use util::interner; diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 0bd08250617d9..4574cc07d7dac 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -55,10 +55,10 @@ use ast::{view_path, view_path_glob, view_path_list, view_path_simple}; use ast::{visibility, vstore, vstore_box, vstore_fixed, vstore_slice}; use ast::{vstore_uniq}; use ast; -use ast_util::{spanned, respan, mk_sp, ident_to_path, operator_prec}; +use ast_util::{spanned, respan, ident_to_path, operator_prec}; use ast_util; use classify; -use codemap::{span,FssNone, BytePos}; +use codemap::{span,FssNone, BytePos, mk_sp}; use codemap; use parse::attr::parser_attr; use parse::common::{seq_sep_none, token_to_str}; diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 47d139b8641dd..beac50cc0de9d 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2252,13 +2252,7 @@ mod test { use ast_util; use parse; use super::*; - //use util; - - fn string_check (given : &T, expected: &T) { - if !(given == expected) { - fail (fmt!("given %?, expected %?",given,expected)); - } - } + use util::testing::check_equal; #[test] fn test_fun_to_str() { @@ -2269,11 +2263,11 @@ mod test { inputs: ~[], output: @ast::Ty {id: 0, node: ast::ty_nil, - span: ast_util::dummy_sp()}, + span: codemap::dummy_sp()}, cf: ast::return_val }; - assert fun_to_str(decl, abba_ident, ~[],mock_interner) - == ~"fn abba()"; + check_equal (&fun_to_str(decl, abba_ident, ~[],mock_interner), + &~"fn abba()"); } #[test] @@ -2281,7 +2275,7 @@ mod test { let mock_interner = parse::token::mk_fake_ident_interner(); let ident = mock_interner.intern(@~"principal_skinner"); - let var = ast_util::respan(ast_util::dummy_sp(), ast::variant_ { + let var = ast_util::respan(codemap::dummy_sp(), ast::variant_ { name: ident, attrs: ~[], // making this up as I go.... ? @@ -2292,7 +2286,7 @@ mod test { }); let varstr = variant_to_str(var,mock_interner); - string_check(&varstr,&~"pub principal_skinner"); + check_equal(&varstr,&~"pub principal_skinner"); } } diff --git a/src/libsyntax/syntax.rc b/src/libsyntax/syntax.rc index 0777269f8f7fc..11900c0995bae 100644 --- a/src/libsyntax/syntax.rc +++ b/src/libsyntax/syntax.rc @@ -31,6 +31,8 @@ use core::*; extern mod std(vers = "0.6"); +extern mod codemap; + pub mod syntax { pub use ext; pub use parse; @@ -40,7 +42,6 @@ pub mod syntax { mod attr; #[legacy_exports] mod diagnostic; -mod codemap; #[legacy_exports] mod ast; #[legacy_exports] @@ -51,12 +52,8 @@ mod ast_map; mod visit; #[legacy_exports] mod fold; -#[legacy_exports] mod util { - #[legacy_exports]; - #[legacy_exports] - #[path = "interner.rs"] - mod interner; + pub mod interner; } #[path = "parse/mod.rs"] diff --git a/src/libsyntax/util/interner.rs b/src/libsyntax/util/interner.rs index e4a09c3c349b8..ba629c8a9ded0 100644 --- a/src/libsyntax/util/interner.rs +++ b/src/libsyntax/util/interner.rs @@ -22,14 +22,14 @@ type hash_interner = {map: HashMap, vect: DVec}; -fn mk() -> Interner { +pub fn mk() -> Interner { let m = map::HashMap::(); let hi: hash_interner = {map: m, vect: DVec()}; move ((move hi) as Interner::) } -fn mk_prefill(init: &[T]) -> Interner { +pub fn mk_prefill(init: &[T]) -> Interner { let rv = mk(); for init.each() |v| { rv.intern(*v); } return rv; @@ -37,7 +37,7 @@ fn mk_prefill(init: &[T]) -> Interner { /* when traits can extend traits, we should extend index to get [] */ -trait Interner { +pub trait Interner { fn intern(T) -> uint; fn gensym(T) -> uint; pure fn get(uint) -> T; diff --git a/src/libsyntax/util/testing.rs b/src/libsyntax/util/testing.rs new file mode 100644 index 0000000000000..f18dbccb2eaf8 --- /dev/null +++ b/src/libsyntax/util/testing.rs @@ -0,0 +1,33 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// support for test cases. + +// Linkage attributes +#[ link(name = "testingfuns", + vers = "1.0", + uuid = "F8BF9F34-147D-47FF-9849-E6C17D34D2FF") ]; + +// Specify the output type +#[ crate_type = "lib" ]; + +#[no_core]; + +extern mod core(vers = "0.6"); +use core::*; + +extern mod std(vers = "0.6"); + +use core::cmp::Eq; +pub fn check_equal (given : &T, expected: &T) { + if !(given == expected) { + fail (fmt!("given %?, expected %?",given,expected)); + } +} diff --git a/src/test/compile-fail/qquote-1.rs b/src/test/compile-fail/qquote-1.rs index a343158337d09..b98b4c6c11d5e 100644 --- a/src/test/compile-fail/qquote-1.rs +++ b/src/test/compile-fail/qquote-1.rs @@ -17,7 +17,7 @@ use io::*; use syntax::diagnostic; use syntax::ast; -use syntax::codemap; +use codemap; use syntax::parse; use syntax::print::*; diff --git a/src/test/compile-fail/qquote-2.rs b/src/test/compile-fail/qquote-2.rs index b7e33f99e3b48..fa5ca4c2cd59c 100644 --- a/src/test/compile-fail/qquote-2.rs +++ b/src/test/compile-fail/qquote-2.rs @@ -17,7 +17,7 @@ use std::io::*; use syntax::diagnostic; use syntax::ast; -use syntax::codemap; +use codemap; use syntax::parse::parser; use syntax::print::*; diff --git a/src/test/run-pass-fulldeps/issue-1926.rs b/src/test/run-pass-fulldeps/issue-1926.rs index 7d52f13b0750a..2066e6d892f42 100644 --- a/src/test/run-pass-fulldeps/issue-1926.rs +++ b/src/test/run-pass-fulldeps/issue-1926.rs @@ -13,7 +13,7 @@ use syntax; use syntax::diagnostic; use syntax::ast; -use syntax::codemap; +use codemap; use syntax::print::pprust; use syntax::parse::parser; diff --git a/src/test/run-pass-fulldeps/qquote.rs b/src/test/run-pass-fulldeps/qquote.rs index 5a82d0104383b..813bd47113339 100644 --- a/src/test/run-pass-fulldeps/qquote.rs +++ b/src/test/run-pass-fulldeps/qquote.rs @@ -19,8 +19,8 @@ use core::io::*; use syntax::diagnostic; use syntax::ast; -use syntax::codemap; -use syntax::codemap::span; +use codemap; +use codemap::span; use syntax::parse; use syntax::print::*;