mxmlextrema_as3parser/tree/
type_expression.rsuse crate::ns::*;
use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NullableTypeExpression {
pub location: Location,
pub base: Rc<Expression>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NonNullableTypeExpression {
pub location: Location,
pub base: Rc<Expression>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AnyTypeExpression {
pub location: Location,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VoidTypeExpression {
pub location: Location,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ArrayTypeExpression {
pub location: Location,
pub expression: Rc<Expression>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TupleTypeExpression {
pub location: Location,
pub expressions: Vec<Rc<Expression>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FunctionTypeExpression {
pub location: Location,
pub parameters: Vec<Rc<FunctionTypeParameter>>,
pub result_type: Option<Rc<Expression>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FunctionTypeParameter {
pub location: Location,
pub kind: ParameterKind,
pub type_expression: Option<Rc<Expression>>,
}