Remove Span::unknown (#525)

This commit is contained in:
JT
2021-12-19 18:46:13 +11:00
committed by GitHub
parent b54e9b6bfd
commit 2883d6cd1e
183 changed files with 1291 additions and 1124 deletions

View File

@@ -1,112 +1,4 @@
use crate::{ShellError, Span, Value};
impl From<String> for Value {
fn from(val: String) -> Self {
Value::String {
val,
span: Span::unknown(),
}
}
}
impl From<bool> for Value {
fn from(val: bool) -> Self {
Value::Bool {
val,
span: Span::unknown(),
}
}
}
impl From<u8> for Value {
fn from(val: u8) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<u16> for Value {
fn from(val: u16) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<u32> for Value {
fn from(val: u32) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<u64> for Value {
fn from(val: u64) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<i8> for Value {
fn from(val: i8) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<i16> for Value {
fn from(val: i16) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<i32> for Value {
fn from(val: i32) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<i64> for Value {
fn from(val: i64) -> Self {
Value::Int {
val: val as i64,
span: Span::unknown(),
}
}
}
impl From<f32> for Value {
fn from(val: f32) -> Self {
Value::Float {
val: val as f64,
span: Span::unknown(),
}
}
}
impl From<f64> for Value {
fn from(val: f64) -> Self {
Value::Float {
val: val as f64,
span: Span::unknown(),
}
}
}
use crate::{ShellError, Value};
impl Value {
pub fn as_f64(&self) -> Result<f64, ShellError> {

View File

@@ -673,27 +673,35 @@ impl Value {
Value::Bool { val, span }
}
// Only use these for test data. Span::unknown() should not be used in user data
// Only use these for test data. Should not be used in user data
pub fn test_string(s: impl Into<String>) -> Value {
Value::String {
val: s.into(),
span: Span::unknown(),
span: Span::test_data(),
}
}
// Only use these for test data. Span::unknown() should not be used in user data
// Only use these for test data. Should not be used in user data
pub fn test_int(val: i64) -> Value {
Value::Int {
val,
span: Span::unknown(),
span: Span::test_data(),
}
}
// Only use these for test data. Span::unknown() should not be used in user data
// Only use these for test data. Should not be used in user data
pub fn test_float(val: f64) -> Value {
Value::Float {
val,
span: Span::unknown(),
span: Span::test_data(),
}
}
// Only use these for test data. Should not be used in user data
pub fn test_bool(val: bool) -> Value {
Value::Bool {
val,
span: Span::test_data(),
}
}
}
@@ -701,7 +709,7 @@ impl Value {
impl Default for Value {
fn default() -> Self {
Value::Nothing {
span: Span::unknown(),
span: Span { start: 0, end: 0 },
}
}
}

View File

@@ -28,7 +28,7 @@ impl Range {
let from = if let Value::Nothing { .. } = from {
Value::Int {
val: 0i64,
span: Span::unknown(),
span: expr_span,
}
} else {
from
@@ -38,12 +38,12 @@ impl Range {
if let Ok(Value::Bool { val: true, .. }) = next.lt(expr_span, &from) {
Value::Int {
val: -100i64,
span: Span::unknown(),
span: expr_span,
}
} else {
Value::Int {
val: 100i64,
span: Span::unknown(),
span: expr_span,
}
}
} else {
@@ -58,12 +58,12 @@ impl Range {
if moves_up {
Value::Int {
val: 1i64,
span: Span::unknown(),
span: expr_span,
}
} else {
Value::Int {
val: -1i64,
span: Span::unknown(),
span: expr_span,
}
}
} else {
@@ -72,7 +72,7 @@ impl Range {
let zero = Value::Int {
val: 0i64,
span: Span::unknown(),
span: expr_span,
};
// Increment must be non-zero, otherwise we iterate forever