Rename Type::None to Type::Void
This commit is contained in:
parent
a28ac297c1
commit
b3e04f987f
@ -57,7 +57,7 @@ impl Validate for Assignment {
|
|||||||
let relevant_statement = self.statement.last_child_statement();
|
let relevant_statement = self.statement.last_child_statement();
|
||||||
let statement_type = relevant_statement.expected_type(context)?;
|
let statement_type = relevant_statement.expected_type(context)?;
|
||||||
|
|
||||||
if let Type::None = &statement_type {
|
if let Type::Void = &statement_type {
|
||||||
return Err(ValidationError::CannotAssignToNone(
|
return Err(ValidationError::CannotAssignToNone(
|
||||||
self.statement.position(),
|
self.statement.position(),
|
||||||
));
|
));
|
||||||
|
@ -171,8 +171,8 @@ impl ExpectedType for BuiltInFunctionCall {
|
|||||||
BuiltInFunctionCall::Length(_) => Ok(Type::Integer),
|
BuiltInFunctionCall::Length(_) => Ok(Type::Integer),
|
||||||
BuiltInFunctionCall::ReadFile(_) => Ok(Type::String),
|
BuiltInFunctionCall::ReadFile(_) => Ok(Type::String),
|
||||||
BuiltInFunctionCall::ReadLine => Ok(Type::String),
|
BuiltInFunctionCall::ReadLine => Ok(Type::String),
|
||||||
BuiltInFunctionCall::Sleep(_) => Ok(Type::None),
|
BuiltInFunctionCall::Sleep(_) => Ok(Type::Void),
|
||||||
BuiltInFunctionCall::WriteLine(_) => Ok(Type::None),
|
BuiltInFunctionCall::WriteLine(_) => Ok(Type::Void),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ impl ExpectedType for ListIndex {
|
|||||||
let expression = if let Some(expression) = expression_list.get(*index as usize) {
|
let expression = if let Some(expression) = expression_list.get(*index as usize) {
|
||||||
expression
|
expression
|
||||||
} else {
|
} else {
|
||||||
return Ok(Type::None);
|
return Ok(Type::Void);
|
||||||
};
|
};
|
||||||
|
|
||||||
expression.expected_type(_context)
|
expression.expected_type(_context)
|
||||||
|
@ -117,7 +117,7 @@ impl ExpectedType for MapIndex {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ok(Type::None);
|
return Ok(Type::Void);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let (
|
if let (
|
||||||
@ -137,7 +137,7 @@ impl ExpectedType for MapIndex {
|
|||||||
}) {
|
}) {
|
||||||
type_result
|
type_result
|
||||||
} else {
|
} else {
|
||||||
Ok(Type::None)
|
Ok(Type::Void)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ impl ExpectedType for Statement {
|
|||||||
Statement::IfElse(if_else) => if_else.node.expected_type(_context),
|
Statement::IfElse(if_else) => if_else.node.expected_type(_context),
|
||||||
Statement::Block(block) => block.node.expected_type(_context),
|
Statement::Block(block) => block.node.expected_type(_context),
|
||||||
Statement::AsyncBlock(async_block) => async_block.node.expected_type(_context),
|
Statement::AsyncBlock(async_block) => async_block.node.expected_type(_context),
|
||||||
_ => Ok(Type::None),
|
_ => Ok(Type::Void),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,13 +31,13 @@ pub enum Type {
|
|||||||
},
|
},
|
||||||
ListOf(Box<Type>),
|
ListOf(Box<Type>),
|
||||||
Map,
|
Map,
|
||||||
None,
|
|
||||||
Range,
|
Range,
|
||||||
String,
|
String,
|
||||||
Structure {
|
Structure {
|
||||||
name: Identifier,
|
name: Identifier,
|
||||||
fields: Vec<(Identifier, Type)>,
|
fields: Vec<(Identifier, Type)>,
|
||||||
},
|
},
|
||||||
|
Void,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Type {
|
impl Type {
|
||||||
@ -49,7 +49,7 @@ impl Type {
|
|||||||
| (Type::Float, Type::Float)
|
| (Type::Float, Type::Float)
|
||||||
| (Type::Integer, Type::Integer)
|
| (Type::Integer, Type::Integer)
|
||||||
| (Type::Map, Type::Map)
|
| (Type::Map, Type::Map)
|
||||||
| (Type::None, Type::None)
|
| (Type::Void, Type::Void)
|
||||||
| (Type::Range, Type::Range)
|
| (Type::Range, Type::Range)
|
||||||
| (Type::String, Type::String) => return Ok(()),
|
| (Type::String, Type::String) => return Ok(()),
|
||||||
(
|
(
|
||||||
@ -240,7 +240,7 @@ impl Display for Type {
|
|||||||
Type::List { length, item_type } => write!(f, "[{length}; {}]", item_type),
|
Type::List { length, item_type } => write!(f, "[{length}; {}]", item_type),
|
||||||
Type::ListOf(item_type) => write!(f, "list({})", item_type),
|
Type::ListOf(item_type) => write!(f, "list({})", item_type),
|
||||||
Type::Map => write!(f, "map"),
|
Type::Map => write!(f, "map"),
|
||||||
Type::None => write!(f, "none"),
|
Type::Void => write!(f, "none"),
|
||||||
Type::Range => write!(f, "range"),
|
Type::Range => write!(f, "range"),
|
||||||
Type::String => write!(f, "str"),
|
Type::String => write!(f, "str"),
|
||||||
Type::Function {
|
Type::Function {
|
||||||
@ -296,7 +296,7 @@ mod tests {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(Type::Map.check(&Type::Map), Ok(()));
|
assert_eq!(Type::Map.check(&Type::Map), Ok(()));
|
||||||
assert_eq!(Type::None.check(&Type::None), Ok(()));
|
assert_eq!(Type::Void.check(&Type::Void), Ok(()));
|
||||||
assert_eq!(Type::Range.check(&Type::Range), Ok(()));
|
assert_eq!(Type::Range.check(&Type::Range), Ok(()));
|
||||||
assert_eq!(Type::String.check(&Type::String), Ok(()));
|
assert_eq!(Type::String.check(&Type::String), Ok(()));
|
||||||
}
|
}
|
||||||
@ -332,7 +332,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
Type::ListOf(Box::new(Type::Boolean)),
|
Type::ListOf(Box::new(Type::Boolean)),
|
||||||
Type::Map,
|
Type::Map,
|
||||||
Type::None,
|
Type::Void,
|
||||||
Type::Range,
|
Type::Range,
|
||||||
Type::String,
|
Type::String,
|
||||||
];
|
];
|
||||||
|
@ -172,7 +172,7 @@ impl TypeConstructor {
|
|||||||
RawTypeConstructor::Float => Type::Float,
|
RawTypeConstructor::Float => Type::Float,
|
||||||
RawTypeConstructor::Integer => Type::Integer,
|
RawTypeConstructor::Integer => Type::Integer,
|
||||||
RawTypeConstructor::Map => Type::Map,
|
RawTypeConstructor::Map => Type::Map,
|
||||||
RawTypeConstructor::None => Type::None,
|
RawTypeConstructor::None => Type::Void,
|
||||||
RawTypeConstructor::Range => Type::Range,
|
RawTypeConstructor::Range => Type::Range,
|
||||||
RawTypeConstructor::String => Type::String,
|
RawTypeConstructor::String => Type::String,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user