about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2017-03-15 09:14:15 +1300
committerNick Cameron <ncameron@mozilla.com>2017-03-15 21:21:20 +1300
commitbf07f1c6bb2a93eb02325a76ad855449b8f0ea5b (patch)
tree9e60f5770bd8e7e3288b4aad4ade5dd838a31815
parent83f84ff1bc002ef33c359626f6cafbd22c5d294d (diff)
downloadrust-bf07f1c6bb2a93eb02325a76ad855449b8f0ea5b.tar.gz
rust-bf07f1c6bb2a93eb02325a76ad855449b8f0ea5b.zip
Add rls-span to do some conversions into rls-data.
And fix some warnings and borrow errors
-rw-r--r--src/Cargo.lock1
-rw-r--r--src/librustc_save_analysis/Cargo.toml1
-rw-r--r--src/librustc_save_analysis/dump_visitor.rs2
-rw-r--r--src/librustc_save_analysis/external_data.rs11
-rw-r--r--src/librustc_save_analysis/json_dumper.rs12
-rw-r--r--src/librustc_save_analysis/lib.rs1
6 files changed, 15 insertions, 13 deletions
diff --git a/src/Cargo.lock b/src/Cargo.lock
index 818a6c2f7c5..7e61014b178 100644
--- a/src/Cargo.lock
+++ b/src/Cargo.lock
@@ -718,6 +718,7 @@ version = "0.0.0"
 dependencies = [
  "log 0.0.0",
  "rls-data 0.1.0 (git+https://github.com/nrc/rls-data)",
+ "rls-span 0.1.0 (git+https://github.com/nrc/rls-span)",
  "rustc 0.0.0",
  "rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
  "syntax 0.0.0",
diff --git a/src/librustc_save_analysis/Cargo.toml b/src/librustc_save_analysis/Cargo.toml
index c4cbe426548..3e6f85a7bb9 100644
--- a/src/librustc_save_analysis/Cargo.toml
+++ b/src/librustc_save_analysis/Cargo.toml
@@ -16,3 +16,4 @@ syntax = { path = "../libsyntax" }
 rustc-serialize = "0.3"
 syntax_pos = { path = "../libsyntax_pos" }
 rls-data = { git = "https://github.com/nrc/rls-data" }
+rls-span = { git = "https://github.com/nrc/rls-span" }
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs
index 4efc3d7baa6..f2aa89ba4b6 100644
--- a/src/librustc_save_analysis/dump_visitor.rs
+++ b/src/librustc_save_analysis/dump_visitor.rs
@@ -29,7 +29,7 @@
 
 use rustc::hir;
 use rustc::hir::def::Def;
-use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
+use rustc::hir::def_id::{DefId, LOCAL_CRATE};
 use rustc::hir::map::{Node, NodeItem};
 use rustc::session::Session;
 use rustc::ty::{self, TyCtxt, AssociatedItemContainer};
diff --git a/src/librustc_save_analysis/external_data.rs b/src/librustc_save_analysis/external_data.rs
index bf296283da4..6ea8e90fec5 100644
--- a/src/librustc_save_analysis/external_data.rs
+++ b/src/librustc_save_analysis/external_data.rs
@@ -17,11 +17,10 @@ use syntax::print::pprust;
 use syntax::symbol::Symbol;
 use syntax_pos::Span;
 
-use std::path::PathBuf;
-
 use data::{self, Visibility, SigElement};
 
 use rls_data::{SpanData, CratePreludeData, Attribute};
+use rls_span::{Column, Row};
 
 // FIXME: this should be pub(crate), but the current snapshot doesn't allow it yet
 pub trait Lower {
@@ -48,10 +47,10 @@ pub fn span_from_span(span: Span, cm: &CodeMap) -> SpanData {
         file_name: start.file.name.clone().into(),
         byte_start: span.lo.0,
         byte_end: span.hi.0,
-        line_start: start.line,
-        line_end: end.line,
-        column_start: start.col.0 + 1,
-        column_end: end.col.0 + 1,
+        line_start: Row::new_one_indexed(start.line as u32),
+        line_end: Row::new_one_indexed(end.line as u32),
+        column_start: Column::new_one_indexed(start.col.0 as u32 + 1),
+        column_end: Column::new_one_indexed(end.col.0 as u32 + 1),
     }
 }
 
diff --git a/src/librustc_save_analysis/json_dumper.rs b/src/librustc_save_analysis/json_dumper.rs
index 3b7625bdcc1..dbc0909b7e0 100644
--- a/src/librustc_save_analysis/json_dumper.rs
+++ b/src/librustc_save_analysis/json_dumper.rs
@@ -15,12 +15,12 @@ use rustc_serialize::json::as_json;
 
 use rls_data::{self, Id, Analysis, Import, ImportKind, Def, DefKind, Ref, RefKind, MacroRef,
                Relation, RelationKind, Signature, SigElement, CratePreludeData};
+use rls_span::{Column, Row};
 
 use external_data;
 use external_data::*;
 use data::{self, VariableKind};
 use dump::Dump;
-use super::Format;
 
 pub struct JsonDumper<'b, W: Write + 'b> {
     output: &'b mut W,
@@ -94,7 +94,7 @@ impl<'b, W: Write + 'b> Dump for JsonDumper<'b, W> {
             sig: Some(data.sig.into()),
             attributes: data.attributes.into_iter().map(|a| a.into()).collect(),
         };
-        if data.span.file_name.to_str().unwrap() != def.value {
+        if def.span.file_name.to_str().unwrap() != def.value {
             // If the module is an out-of-line defintion, then we'll make the
             // defintion the first character in the module's file and turn the
             // the declaration into a reference to it.
@@ -108,10 +108,10 @@ impl<'b, W: Write + 'b> Dump for JsonDumper<'b, W> {
                 file_name: def.value.clone().into(),
                 byte_start: 0,
                 byte_end: 0,
-                line_start: 1,
-                line_end: 1,
-                column_start: 1,
-                column_end: 1,
+                line_start: Row::new_one_indexed(1),
+                line_end: Row::new_one_indexed(1),
+                column_start: Column::new_one_indexed(1),
+                column_end: Column::new_one_indexed(1),
             }
         }
 
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index ec637268d91..eb7511f9e16 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -30,6 +30,7 @@ extern crate rustc_serialize;
 extern crate syntax_pos;
 
 extern crate rls_data;
+extern crate rls_span;
 
 
 mod csv_dumper;