no need for InferredGenericType!

This commit is contained in:
James Blacklock 2021-10-15 02:57:49 -07:00 committed by Olivier Goffart
parent ab665ba7b6
commit cc4105e274
4 changed files with 2 additions and 9 deletions

View file

@ -179,7 +179,6 @@ fn to_debug_string(
match &ty { match &ty {
Type::Invalid => Expression::Invalid, Type::Invalid => Expression::Invalid,
Type::Void Type::Void
| Type::InferredGenericType
| Type::InferredCallback | Type::InferredCallback
| Type::InferredProperty | Type::InferredProperty
| Type::Component(_) | Type::Component(_)

View file

@ -128,7 +128,7 @@ impl BuiltinFunction {
}, },
BuiltinFunction::ArrayLength => Type::Function { BuiltinFunction::ArrayLength => Type::Function {
return_type: Box::new(Type::Int32), return_type: Box::new(Type::Int32),
args: vec![Type::Array(Box::new(Type::InferredGenericType))], args: vec![Type::Model],
}, },
BuiltinFunction::Rgb => Type::Function { BuiltinFunction::Rgb => Type::Function {
return_type: Box::new(Type::Color), return_type: Box::new(Type::Color),
@ -991,7 +991,6 @@ impl Expression {
pub fn default_value_for_type(ty: &Type) -> Expression { pub fn default_value_for_type(ty: &Type) -> Expression {
match ty { match ty {
Type::Invalid Type::Invalid
| Type::InferredGenericType
| Type::Component(_) | Type::Component(_)
| Type::Builtin(_) | Type::Builtin(_)
| Type::Native(_) | Type::Native(_)

View file

@ -1628,7 +1628,7 @@ fn compile_expression(
"[](const sixtyfps::Image &img) { return img.size(); }".into() "[](const sixtyfps::Image &img) { return img.size(); }".into()
} }
BuiltinFunction::ArrayLength => { BuiltinFunction::ArrayLength => {
"[](const sixtyfps::Model &model) { return (int) model.row_count(); }".into() "[](const auto &model) { return (int) model.row_count(); }".into()
} }
BuiltinFunction::Rgb => { BuiltinFunction::Rgb => {
"[](int r, int g, int b, float a) {{ return sixtyfps::Color::from_argb_uint8(std::clamp(a * 255., 0., 255.), std::clamp(r, 0, 255), std::clamp(g, 0, 255), std::clamp(b, 0, 255)); }}".into() "[](int r, int g, int b, float a) {{ return sixtyfps::Color::from_argb_uint8(std::clamp(a * 255., 0., 255.), std::clamp(r, 0, 255), std::clamp(g, 0, 255), std::clamp(b, 0, 255)); }}".into()

View file

@ -76,14 +76,11 @@ pub enum Type {
/// This is a `SharedArray<f32>` /// This is a `SharedArray<f32>`
LayoutCache, LayoutCache,
InferredGenericType,
} }
impl core::cmp::PartialEq for Type { impl core::cmp::PartialEq for Type {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
match self { match self {
Type::InferredGenericType => true,
Type::Invalid => matches!(other, Type::Invalid), Type::Invalid => matches!(other, Type::Invalid),
Type::Void => matches!(other, Type::Void), Type::Void => matches!(other, Type::Void),
Type::InferredProperty => matches!(other, Type::InferredProperty), Type::InferredProperty => matches!(other, Type::InferredProperty),
@ -127,7 +124,6 @@ impl core::cmp::PartialEq for Type {
impl Display for Type { impl Display for Type {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self { match self {
Type::InferredGenericType => write!(f, "<_>"),
Type::Invalid => write!(f, "<error>"), Type::Invalid => write!(f, "<error>"),
Type::Void => write!(f, "void"), Type::Void => write!(f, "void"),
Type::InferredProperty => write!(f, "?"), Type::InferredProperty => write!(f, "?"),
@ -473,7 +469,6 @@ impl Type {
// Unit::Percent is special that it does not combine with other units like // Unit::Percent is special that it does not combine with other units like
Type::Percent => None, Type::Percent => None,
Type::Angle => Some(Unit::Deg), Type::Angle => Some(Unit::Deg),
Type::InferredGenericType => None,
Type::Invalid => None, Type::Invalid => None,
Type::Void => None, Type::Void => None,
Type::InferredProperty | Type::InferredCallback => None, Type::InferredProperty | Type::InferredCallback => None,