diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2014-12-01 14:59:55 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2014-12-13 20:15:39 -0500 |
| commit | 265b89abde76f7e0555712d7c9056c6f6c57ff96 (patch) | |
| tree | a0e0f917648b91a1a7a38d4edf1252dd8e24cf34 | |
| parent | b5537fa838112192f0ed1f1593c574fe621497a6 (diff) | |
| download | rust-265b89abde76f7e0555712d7c9056c6f6c57ff96.tar.gz rust-265b89abde76f7e0555712d7c9056c6f6c57ff96.zip | |
libsyntax: convert `BytePos`/`CharPos` binops to by value
| -rw-r--r-- | src/libsyntax/codemap.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index d2fe667339c..592fdd7207c 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -52,35 +52,71 @@ impl Pos for BytePos { fn to_uint(&self) -> uint { let BytePos(n) = *self; n as uint } } +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl Add<BytePos, BytePos> for BytePos { fn add(&self, rhs: &BytePos) -> BytePos { BytePos((self.to_uint() + rhs.to_uint()) as u32) } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl Add<BytePos, BytePos> for BytePos { + fn add(self, rhs: BytePos) -> BytePos { + BytePos((self.to_uint() + rhs.to_uint()) as u32) + } +} + +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl Sub<BytePos, BytePos> for BytePos { fn sub(&self, rhs: &BytePos) -> BytePos { BytePos((self.to_uint() - rhs.to_uint()) as u32) } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl Sub<BytePos, BytePos> for BytePos { + fn sub(self, rhs: BytePos) -> BytePos { + BytePos((self.to_uint() - rhs.to_uint()) as u32) + } +} + impl Pos for CharPos { fn from_uint(n: uint) -> CharPos { CharPos(n) } fn to_uint(&self) -> uint { let CharPos(n) = *self; n } } +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl Add<CharPos,CharPos> for CharPos { fn add(&self, rhs: &CharPos) -> CharPos { CharPos(self.to_uint() + rhs.to_uint()) } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl Add<CharPos, CharPos> for CharPos { + fn add(self, rhs: CharPos) -> CharPos { + CharPos(self.to_uint() + rhs.to_uint()) + } +} + +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl Sub<CharPos,CharPos> for CharPos { fn sub(&self, rhs: &CharPos) -> CharPos { CharPos(self.to_uint() - rhs.to_uint()) } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl Sub<CharPos, CharPos> for CharPos { + fn sub(self, rhs: CharPos) -> CharPos { + CharPos(self.to_uint() - rhs.to_uint()) + } +} + /// Spans represent a region of code, used for error reporting. Positions in spans /// are *absolute* positions from the beginning of the codemap, not positions /// relative to FileMaps. Methods on the CodeMap can be used to relate spans back |
