summaryrefslogtreecommitdiffstats
path: root/library/proc_macro/src
diff options
context:
space:
mode:
Diffstat (limited to 'library/proc_macro/src')
-rw-r--r--library/proc_macro/src/bridge/mod.rs12
-rw-r--r--library/proc_macro/src/lib.rs71
2 files changed, 23 insertions, 60 deletions
diff --git a/library/proc_macro/src/bridge/mod.rs b/library/proc_macro/src/bridge/mod.rs
index caecda1bc..86ce5d9c6 100644
--- a/library/proc_macro/src/bridge/mod.rs
+++ b/library/proc_macro/src/bridge/mod.rs
@@ -8,7 +8,7 @@
#![deny(unsafe_code)]
-use crate::{Delimiter, Level, LineColumn, Spacing};
+use crate::{Delimiter, Level, Spacing};
use std::fmt;
use std::hash::Hash;
use std::marker;
@@ -95,10 +95,10 @@ macro_rules! with_api {
fn parent($self: $S::Span) -> Option<$S::Span>;
fn source($self: $S::Span) -> $S::Span;
fn byte_range($self: $S::Span) -> Range<usize>;
- fn start($self: $S::Span) -> LineColumn;
- fn end($self: $S::Span) -> LineColumn;
- fn before($self: $S::Span) -> $S::Span;
- fn after($self: $S::Span) -> $S::Span;
+ fn start($self: $S::Span) -> $S::Span;
+ fn end($self: $S::Span) -> $S::Span;
+ fn line($self: $S::Span) -> usize;
+ fn column($self: $S::Span) -> usize;
fn join($self: $S::Span, other: $S::Span) -> Option<$S::Span>;
fn subspan($self: $S::Span, start: Bound<usize>, end: Bound<usize>) -> Option<$S::Span>;
fn resolved_at($self: $S::Span, at: $S::Span) -> $S::Span;
@@ -299,7 +299,6 @@ mark_noop! {
Delimiter,
LitKind,
Level,
- LineColumn,
Spacing,
}
@@ -319,7 +318,6 @@ rpc_encode_decode!(
Help,
}
);
-rpc_encode_decode!(struct LineColumn { line, column });
rpc_encode_decode!(
enum Spacing {
Alone,
diff --git a/library/proc_macro/src/lib.rs b/library/proc_macro/src/lib.rs
index c64665b6a..7fb0d989c 100644
--- a/library/proc_macro/src/lib.rs
+++ b/library/proc_macro/src/lib.rs
@@ -43,7 +43,6 @@ mod diagnostic;
#[unstable(feature = "proc_macro_diagnostic", issue = "54140")]
pub use diagnostic::{Diagnostic, Level, MultiSpan};
-use std::cmp::Ordering;
use std::ops::{Range, RangeBounds};
use std::path::PathBuf;
use std::str::FromStr;
@@ -494,28 +493,32 @@ impl Span {
self.0.byte_range()
}
- /// Gets the starting line/column in the source file for this span.
+ /// Creates an empty span pointing to directly before this span.
#[unstable(feature = "proc_macro_span", issue = "54725")]
- pub fn start(&self) -> LineColumn {
- self.0.start().add_1_to_column()
+ pub fn start(&self) -> Span {
+ Span(self.0.start())
}
- /// Gets the ending line/column in the source file for this span.
+ /// Creates an empty span pointing to directly after this span.
#[unstable(feature = "proc_macro_span", issue = "54725")]
- pub fn end(&self) -> LineColumn {
- self.0.end().add_1_to_column()
+ pub fn end(&self) -> Span {
+ Span(self.0.end())
}
- /// Creates an empty span pointing to directly before this span.
- #[unstable(feature = "proc_macro_span_shrink", issue = "87552")]
- pub fn before(&self) -> Span {
- Span(self.0.before())
+ /// The one-indexed line of the source file where the span starts.
+ ///
+ /// To obtain the line of the span's end, use `span.end().line()`.
+ #[unstable(feature = "proc_macro_span", issue = "54725")]
+ pub fn line(&self) -> usize {
+ self.0.line()
}
- /// Creates an empty span pointing to directly after this span.
- #[unstable(feature = "proc_macro_span_shrink", issue = "87552")]
- pub fn after(&self) -> Span {
- Span(self.0.after())
+ /// The one-indexed column of the source file where the span starts.
+ ///
+ /// To obtain the column of the span's end, use `span.end().column()`.
+ #[unstable(feature = "proc_macro_span", issue = "54725")]
+ pub fn column(&self) -> usize {
+ self.0.column()
}
/// Creates a new span encompassing `self` and `other`.
@@ -586,44 +589,6 @@ impl fmt::Debug for Span {
}
}
-/// A line-column pair representing the start or end of a `Span`.
-#[unstable(feature = "proc_macro_span", issue = "54725")]
-#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
-pub struct LineColumn {
- /// The 1-indexed line in the source file on which the span starts or ends (inclusive).
- #[unstable(feature = "proc_macro_span", issue = "54725")]
- pub line: usize,
- /// The 1-indexed column (number of bytes in UTF-8 encoding) in the source
- /// file on which the span starts or ends (inclusive).
- #[unstable(feature = "proc_macro_span", issue = "54725")]
- pub column: usize,
-}
-
-impl LineColumn {
- fn add_1_to_column(self) -> Self {
- LineColumn { line: self.line, column: self.column + 1 }
- }
-}
-
-#[unstable(feature = "proc_macro_span", issue = "54725")]
-impl !Send for LineColumn {}
-#[unstable(feature = "proc_macro_span", issue = "54725")]
-impl !Sync for LineColumn {}
-
-#[unstable(feature = "proc_macro_span", issue = "54725")]
-impl Ord for LineColumn {
- fn cmp(&self, other: &Self) -> Ordering {
- self.line.cmp(&other.line).then(self.column.cmp(&other.column))
- }
-}
-
-#[unstable(feature = "proc_macro_span", issue = "54725")]
-impl PartialOrd for LineColumn {
- fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
- Some(self.cmp(other))
- }
-}
-
/// The source file of a given `Span`.
#[unstable(feature = "proc_macro_span", issue = "54725")]
#[derive(Clone)]