Map i64 and f64 to int and float in definitions file.

This commit is contained in:
Stephen Chung 2022-07-26 22:55:24 +08:00
parent 8e21c4727b
commit d42c6b69a3
5 changed files with 415 additions and 409 deletions

View File

@ -1,16 +1,16 @@
module static; module static;
op ==(i64, i64) -> bool; op ==(int, int) -> bool;
op !=(i64, i64) -> bool; op !=(int, int) -> bool;
op >(i64, i64) -> bool; op >(int, int) -> bool;
op >=(i64, i64) -> bool; op >=(int, int) -> bool;
op <(i64, i64) -> bool; op <(int, int) -> bool;
op <=(i64, i64) -> bool; op <=(int, int) -> bool;
op &(i64, i64) -> i64; op &(int, int) -> int;
op |(i64, i64) -> i64; op |(int, int) -> int;
op ^(i64, i64) -> i64; op ^(int, int) -> int;
op ..(i64, i64) -> Range<i64>; op ..(int, int) -> Range<int>;
op ..=(i64, i64) -> RangeInclusive<i64>; op ..=(int, int) -> RangeInclusive<int>;
op ==(bool, bool) -> bool; op ==(bool, bool) -> bool;
op !=(bool, bool) -> bool; op !=(bool, bool) -> bool;
@ -29,53 +29,53 @@ op >=((), ()) -> bool;
op <((), ()) -> bool; op <((), ()) -> bool;
op <=((), ()) -> bool; op <=((), ()) -> bool;
op +(i64, i64) -> i64; op +(int, int) -> int;
op -(i64, i64) -> i64; op -(int, int) -> int;
op *(i64, i64) -> i64; op *(int, int) -> int;
op /(i64, i64) -> i64; op /(int, int) -> int;
op %(i64, i64) -> i64; op %(int, int) -> int;
op **(i64, i64) -> i64; op **(int, int) -> int;
op >>(i64, i64) -> i64; op >>(int, int) -> int;
op <<(i64, i64) -> i64; op <<(int, int) -> int;
op +(f64, f64) -> f64; op +(float, float) -> float;
op -(f64, f64) -> f64; op -(float, float) -> float;
op *(f64, f64) -> f64; op *(float, float) -> float;
op /(f64, f64) -> f64; op /(float, float) -> float;
op %(f64, f64) -> f64; op %(float, float) -> float;
op **(f64, f64) -> f64; op **(float, float) -> float;
op ==(f64, f64) -> bool; op ==(float, float) -> bool;
op !=(f64, f64) -> bool; op !=(float, float) -> bool;
op >(f64, f64) -> bool; op >(float, float) -> bool;
op >=(f64, f64) -> bool; op >=(float, float) -> bool;
op <(f64, f64) -> bool; op <(float, float) -> bool;
op <=(f64, f64) -> bool; op <=(float, float) -> bool;
op +(f64, i64) -> f64; op +(float, int) -> float;
op -(f64, i64) -> f64; op -(float, int) -> float;
op *(f64, i64) -> f64; op *(float, int) -> float;
op /(f64, i64) -> f64; op /(float, int) -> float;
op %(f64, i64) -> f64; op %(float, int) -> float;
op **(f64, i64) -> f64; op **(float, int) -> float;
op ==(f64, i64) -> bool; op ==(float, int) -> bool;
op !=(f64, i64) -> bool; op !=(float, int) -> bool;
op >(f64, i64) -> bool; op >(float, int) -> bool;
op >=(f64, i64) -> bool; op >=(float, int) -> bool;
op <(f64, i64) -> bool; op <(float, int) -> bool;
op <=(f64, i64) -> bool; op <=(float, int) -> bool;
op +(i64, f64) -> f64; op +(int, float) -> float;
op -(i64, f64) -> f64; op -(int, float) -> float;
op *(i64, f64) -> f64; op *(int, float) -> float;
op /(i64, f64) -> f64; op /(int, float) -> float;
op %(i64, f64) -> f64; op %(int, float) -> float;
op **(i64, f64) -> f64; op **(int, float) -> float;
op ==(i64, f64) -> bool; op ==(int, float) -> bool;
op !=(i64, f64) -> bool; op !=(int, float) -> bool;
op >(i64, f64) -> bool; op >(int, float) -> bool;
op >=(i64, f64) -> bool; op >=(int, float) -> bool;
op <(i64, f64) -> bool; op <(int, float) -> bool;
op <=(i64, f64) -> bool; op <=(int, float) -> bool;
op +(Decimal, Decimal) -> Decimal; op +(Decimal, Decimal) -> Decimal;
op -(Decimal, Decimal) -> Decimal; op -(Decimal, Decimal) -> Decimal;
@ -90,31 +90,31 @@ op >=(Decimal, Decimal) -> bool;
op <(Decimal, Decimal) -> bool; op <(Decimal, Decimal) -> bool;
op <=(Decimal, Decimal) -> bool; op <=(Decimal, Decimal) -> bool;
op +(Decimal, i64) -> Decimal; op +(Decimal, int) -> Decimal;
op -(Decimal, i64) -> Decimal; op -(Decimal, int) -> Decimal;
op *(Decimal, i64) -> Decimal; op *(Decimal, int) -> Decimal;
op /(Decimal, i64) -> Decimal; op /(Decimal, int) -> Decimal;
op %(Decimal, i64) -> Decimal; op %(Decimal, int) -> Decimal;
op **(Decimal, i64) -> Decimal; op **(Decimal, int) -> Decimal;
op ==(Decimal, i64) -> bool; op ==(Decimal, int) -> bool;
op !=(Decimal, i64) -> bool; op !=(Decimal, int) -> bool;
op >(Decimal, i64) -> bool; op >(Decimal, int) -> bool;
op >=(Decimal, i64) -> bool; op >=(Decimal, int) -> bool;
op <(Decimal, i64) -> bool; op <(Decimal, int) -> bool;
op <=(Decimal, i64) -> bool; op <=(Decimal, int) -> bool;
op +(i64, Decimal) -> Decimal; op +(int, Decimal) -> Decimal;
op -(i64, Decimal) -> Decimal; op -(int, Decimal) -> Decimal;
op *(i64, Decimal) -> Decimal; op *(int, Decimal) -> Decimal;
op /(i64, Decimal) -> Decimal; op /(int, Decimal) -> Decimal;
op %(i64, Decimal) -> Decimal; op %(int, Decimal) -> Decimal;
op **(i64, Decimal) -> Decimal; op **(int, Decimal) -> Decimal;
op ==(i64, Decimal) -> bool; op ==(int, Decimal) -> bool;
op !=(i64, Decimal) -> bool; op !=(int, Decimal) -> bool;
op >(i64, Decimal) -> bool; op >(int, Decimal) -> bool;
op >=(i64, Decimal) -> bool; op >=(int, Decimal) -> bool;
op <(i64, Decimal) -> bool; op <(int, Decimal) -> bool;
op <=(i64, Decimal) -> bool; op <=(int, Decimal) -> bool;
op +(String, String) -> String; op +(String, String) -> String;
op -(String, String) -> String; op -(String, String) -> String;
@ -172,17 +172,17 @@ op ==(Blob, Blob) -> bool;
op !=(Blob, Blob) -> bool; op !=(Blob, Blob) -> bool;
op ==(Range<i64>, RangeInclusive<i64>) -> bool; op ==(Range<int>, RangeInclusive<int>) -> bool;
op !=(Range<i64>, RangeInclusive<i64>) -> bool; op !=(Range<int>, RangeInclusive<int>) -> bool;
op ==(RangeInclusive<i64>, Range<i64>) -> bool; op ==(RangeInclusive<int>, Range<int>) -> bool;
op !=(RangeInclusive<i64>, Range<i64>) -> bool; op !=(RangeInclusive<int>, Range<int>) -> bool;
op ==(Range<i64>, Range<i64>) -> bool; op ==(Range<int>, Range<int>) -> bool;
op !=(Range<i64>, Range<i64>) -> bool; op !=(Range<int>, Range<int>) -> bool;
op ==(RangeInclusive<i64>, RangeInclusive<i64>) -> bool; op ==(RangeInclusive<int>, RangeInclusive<int>) -> bool;
op !=(RangeInclusive<i64>, RangeInclusive<i64>) -> bool; op !=(RangeInclusive<int>, RangeInclusive<int>) -> bool;
op ==(?, ?) -> bool; op ==(?, ?) -> bool;
op !=(?, ?) -> bool; op !=(?, ?) -> bool;
@ -195,31 +195,31 @@ op <=(?, ?) -> bool;
op &=(bool, bool); op &=(bool, bool);
op |=(bool, bool); op |=(bool, bool);
op +=(i64, i64); op +=(int, int);
op -=(i64, i64); op -=(int, int);
op *=(i64, i64); op *=(int, int);
op /=(i64, i64); op /=(int, int);
op %=(i64, i64); op %=(int, int);
op **=(i64, i64); op **=(int, int);
op >>=(i64, i64); op >>=(int, int);
op <<=(i64, i64); op <<=(int, int);
op &=(i64, i64); op &=(int, int);
op |=(i64, i64); op |=(int, int);
op ^=(i64, i64); op ^=(int, int);
op +=(f64, f64); op +=(float, float);
op -=(f64, f64); op -=(float, float);
op *=(f64, f64); op *=(float, float);
op /=(f64, f64); op /=(float, float);
op %=(f64, f64); op %=(float, float);
op **=(f64, f64); op **=(float, float);
op +=(f64, i64); op +=(float, int);
op -=(f64, i64); op -=(float, int);
op *=(f64, i64); op *=(float, int);
op /=(f64, i64); op /=(float, int);
op %=(f64, i64); op %=(float, int);
op **=(f64, i64); op **=(float, int);
op +=(Decimal, Decimal); op +=(Decimal, Decimal);
op -=(Decimal, Decimal); op -=(Decimal, Decimal);
@ -228,12 +228,12 @@ op /=(Decimal, Decimal);
op %=(Decimal, Decimal); op %=(Decimal, Decimal);
op **=(Decimal, Decimal); op **=(Decimal, Decimal);
op +=(Decimal, i64); op +=(Decimal, int);
op -=(Decimal, i64); op -=(Decimal, int);
op *=(Decimal, i64); op *=(Decimal, int);
op /=(Decimal, i64); op /=(Decimal, int);
op %=(Decimal, i64); op %=(Decimal, int);
op **=(Decimal, i64); op **=(Decimal, int);
op +=(String, String); op +=(String, String);
op -=(String, String); op -=(String, String);
@ -246,7 +246,7 @@ op +=(Array, Array);
op +=(Array, ?); op +=(Array, ?);
op +=(Blob, Blob); op +=(Blob, Blob);
op +=(Blob, i64); op +=(Blob, int);
op +=(Blob, char); op +=(Blob, char);
op +=(Blob, String); op +=(Blob, String);

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
module general_kenobi; module general_kenobi;
/// Returns a string where "hello there" is repeated `n` times. /// Returns a string where "hello there" is repeated `n` times.
fn hello_there(n: i64) -> String; fn hello_there(n: int) -> String;

View File

@ -1,16 +1,16 @@
module static; module static;
op ==(i64, i64) -> bool; op ==(int, int) -> bool;
op !=(i64, i64) -> bool; op !=(int, int) -> bool;
op >(i64, i64) -> bool; op >(int, int) -> bool;
op >=(i64, i64) -> bool; op >=(int, int) -> bool;
op <(i64, i64) -> bool; op <(int, int) -> bool;
op <=(i64, i64) -> bool; op <=(int, int) -> bool;
op &(i64, i64) -> i64; op &(int, int) -> int;
op |(i64, i64) -> i64; op |(int, int) -> int;
op ^(i64, i64) -> i64; op ^(int, int) -> int;
op ..(i64, i64) -> Range<i64>; op ..(int, int) -> Range<int>;
op ..=(i64, i64) -> RangeInclusive<i64>; op ..=(int, int) -> RangeInclusive<int>;
op ==(bool, bool) -> bool; op ==(bool, bool) -> bool;
op !=(bool, bool) -> bool; op !=(bool, bool) -> bool;
@ -29,53 +29,53 @@ op >=((), ()) -> bool;
op <((), ()) -> bool; op <((), ()) -> bool;
op <=((), ()) -> bool; op <=((), ()) -> bool;
op +(i64, i64) -> i64; op +(int, int) -> int;
op -(i64, i64) -> i64; op -(int, int) -> int;
op *(i64, i64) -> i64; op *(int, int) -> int;
op /(i64, i64) -> i64; op /(int, int) -> int;
op %(i64, i64) -> i64; op %(int, int) -> int;
op **(i64, i64) -> i64; op **(int, int) -> int;
op >>(i64, i64) -> i64; op >>(int, int) -> int;
op <<(i64, i64) -> i64; op <<(int, int) -> int;
op +(f64, f64) -> f64; op +(float, float) -> float;
op -(f64, f64) -> f64; op -(float, float) -> float;
op *(f64, f64) -> f64; op *(float, float) -> float;
op /(f64, f64) -> f64; op /(float, float) -> float;
op %(f64, f64) -> f64; op %(float, float) -> float;
op **(f64, f64) -> f64; op **(float, float) -> float;
op ==(f64, f64) -> bool; op ==(float, float) -> bool;
op !=(f64, f64) -> bool; op !=(float, float) -> bool;
op >(f64, f64) -> bool; op >(float, float) -> bool;
op >=(f64, f64) -> bool; op >=(float, float) -> bool;
op <(f64, f64) -> bool; op <(float, float) -> bool;
op <=(f64, f64) -> bool; op <=(float, float) -> bool;
op +(f64, i64) -> f64; op +(float, int) -> float;
op -(f64, i64) -> f64; op -(float, int) -> float;
op *(f64, i64) -> f64; op *(float, int) -> float;
op /(f64, i64) -> f64; op /(float, int) -> float;
op %(f64, i64) -> f64; op %(float, int) -> float;
op **(f64, i64) -> f64; op **(float, int) -> float;
op ==(f64, i64) -> bool; op ==(float, int) -> bool;
op !=(f64, i64) -> bool; op !=(float, int) -> bool;
op >(f64, i64) -> bool; op >(float, int) -> bool;
op >=(f64, i64) -> bool; op >=(float, int) -> bool;
op <(f64, i64) -> bool; op <(float, int) -> bool;
op <=(f64, i64) -> bool; op <=(float, int) -> bool;
op +(i64, f64) -> f64; op +(int, float) -> float;
op -(i64, f64) -> f64; op -(int, float) -> float;
op *(i64, f64) -> f64; op *(int, float) -> float;
op /(i64, f64) -> f64; op /(int, float) -> float;
op %(i64, f64) -> f64; op %(int, float) -> float;
op **(i64, f64) -> f64; op **(int, float) -> float;
op ==(i64, f64) -> bool; op ==(int, float) -> bool;
op !=(i64, f64) -> bool; op !=(int, float) -> bool;
op >(i64, f64) -> bool; op >(int, float) -> bool;
op >=(i64, f64) -> bool; op >=(int, float) -> bool;
op <(i64, f64) -> bool; op <(int, float) -> bool;
op <=(i64, f64) -> bool; op <=(int, float) -> bool;
op +(Decimal, Decimal) -> Decimal; op +(Decimal, Decimal) -> Decimal;
op -(Decimal, Decimal) -> Decimal; op -(Decimal, Decimal) -> Decimal;
@ -90,31 +90,31 @@ op >=(Decimal, Decimal) -> bool;
op <(Decimal, Decimal) -> bool; op <(Decimal, Decimal) -> bool;
op <=(Decimal, Decimal) -> bool; op <=(Decimal, Decimal) -> bool;
op +(Decimal, i64) -> Decimal; op +(Decimal, int) -> Decimal;
op -(Decimal, i64) -> Decimal; op -(Decimal, int) -> Decimal;
op *(Decimal, i64) -> Decimal; op *(Decimal, int) -> Decimal;
op /(Decimal, i64) -> Decimal; op /(Decimal, int) -> Decimal;
op %(Decimal, i64) -> Decimal; op %(Decimal, int) -> Decimal;
op **(Decimal, i64) -> Decimal; op **(Decimal, int) -> Decimal;
op ==(Decimal, i64) -> bool; op ==(Decimal, int) -> bool;
op !=(Decimal, i64) -> bool; op !=(Decimal, int) -> bool;
op >(Decimal, i64) -> bool; op >(Decimal, int) -> bool;
op >=(Decimal, i64) -> bool; op >=(Decimal, int) -> bool;
op <(Decimal, i64) -> bool; op <(Decimal, int) -> bool;
op <=(Decimal, i64) -> bool; op <=(Decimal, int) -> bool;
op +(i64, Decimal) -> Decimal; op +(int, Decimal) -> Decimal;
op -(i64, Decimal) -> Decimal; op -(int, Decimal) -> Decimal;
op *(i64, Decimal) -> Decimal; op *(int, Decimal) -> Decimal;
op /(i64, Decimal) -> Decimal; op /(int, Decimal) -> Decimal;
op %(i64, Decimal) -> Decimal; op %(int, Decimal) -> Decimal;
op **(i64, Decimal) -> Decimal; op **(int, Decimal) -> Decimal;
op ==(i64, Decimal) -> bool; op ==(int, Decimal) -> bool;
op !=(i64, Decimal) -> bool; op !=(int, Decimal) -> bool;
op >(i64, Decimal) -> bool; op >(int, Decimal) -> bool;
op >=(i64, Decimal) -> bool; op >=(int, Decimal) -> bool;
op <(i64, Decimal) -> bool; op <(int, Decimal) -> bool;
op <=(i64, Decimal) -> bool; op <=(int, Decimal) -> bool;
op +(String, String) -> String; op +(String, String) -> String;
op -(String, String) -> String; op -(String, String) -> String;
@ -172,17 +172,17 @@ op ==(Blob, Blob) -> bool;
op !=(Blob, Blob) -> bool; op !=(Blob, Blob) -> bool;
op ==(Range<i64>, RangeInclusive<i64>) -> bool; op ==(Range<int>, RangeInclusive<int>) -> bool;
op !=(Range<i64>, RangeInclusive<i64>) -> bool; op !=(Range<int>, RangeInclusive<int>) -> bool;
op ==(RangeInclusive<i64>, Range<i64>) -> bool; op ==(RangeInclusive<int>, Range<int>) -> bool;
op !=(RangeInclusive<i64>, Range<i64>) -> bool; op !=(RangeInclusive<int>, Range<int>) -> bool;
op ==(Range<i64>, Range<i64>) -> bool; op ==(Range<int>, Range<int>) -> bool;
op !=(Range<i64>, Range<i64>) -> bool; op !=(Range<int>, Range<int>) -> bool;
op ==(RangeInclusive<i64>, RangeInclusive<i64>) -> bool; op ==(RangeInclusive<int>, RangeInclusive<int>) -> bool;
op !=(RangeInclusive<i64>, RangeInclusive<i64>) -> bool; op !=(RangeInclusive<int>, RangeInclusive<int>) -> bool;
op ==(?, ?) -> bool; op ==(?, ?) -> bool;
op !=(?, ?) -> bool; op !=(?, ?) -> bool;
@ -195,31 +195,31 @@ op <=(?, ?) -> bool;
op &=(bool, bool); op &=(bool, bool);
op |=(bool, bool); op |=(bool, bool);
op +=(i64, i64); op +=(int, int);
op -=(i64, i64); op -=(int, int);
op *=(i64, i64); op *=(int, int);
op /=(i64, i64); op /=(int, int);
op %=(i64, i64); op %=(int, int);
op **=(i64, i64); op **=(int, int);
op >>=(i64, i64); op >>=(int, int);
op <<=(i64, i64); op <<=(int, int);
op &=(i64, i64); op &=(int, int);
op |=(i64, i64); op |=(int, int);
op ^=(i64, i64); op ^=(int, int);
op +=(f64, f64); op +=(float, float);
op -=(f64, f64); op -=(float, float);
op *=(f64, f64); op *=(float, float);
op /=(f64, f64); op /=(float, float);
op %=(f64, f64); op %=(float, float);
op **=(f64, f64); op **=(float, float);
op +=(f64, i64); op +=(float, int);
op -=(f64, i64); op -=(float, int);
op *=(f64, i64); op *=(float, int);
op /=(f64, i64); op /=(float, int);
op %=(f64, i64); op %=(float, int);
op **=(f64, i64); op **=(float, int);
op +=(Decimal, Decimal); op +=(Decimal, Decimal);
op -=(Decimal, Decimal); op -=(Decimal, Decimal);
@ -228,12 +228,12 @@ op /=(Decimal, Decimal);
op %=(Decimal, Decimal); op %=(Decimal, Decimal);
op **=(Decimal, Decimal); op **=(Decimal, Decimal);
op +=(Decimal, i64); op +=(Decimal, int);
op -=(Decimal, i64); op -=(Decimal, int);
op *=(Decimal, i64); op *=(Decimal, int);
op /=(Decimal, i64); op /=(Decimal, int);
op %=(Decimal, i64); op %=(Decimal, int);
op **=(Decimal, i64); op **=(Decimal, int);
op +=(String, String); op +=(String, String);
op -=(String, String); op -=(String, String);
@ -246,7 +246,7 @@ op +=(Array, Array);
op +=(Array, ?); op +=(Array, ?);
op +=(Blob, Blob); op +=(Blob, Blob);
op +=(Blob, i64); op +=(Blob, int);
op +=(Blob, char); op +=(Blob, char);
op +=(Blob, String); op +=(Blob, String);

View File

@ -4,11 +4,11 @@
use crate::module::FuncInfo; use crate::module::FuncInfo;
use crate::plugin::*; use crate::plugin::*;
use crate::tokenizer::is_valid_function_name; use crate::tokenizer::is_valid_function_name;
use crate::{Engine, Module, Scope}; use crate::{Engine, Module, Scope, INT};
#[cfg(feature = "no_std")] #[cfg(feature = "no_std")]
use std::prelude::v1::*; use std::prelude::v1::*;
use std::{borrow::Cow, cmp::Ordering, fmt}; use std::{any::type_name, borrow::Cow, cmp::Ordering, fmt};
impl Engine { impl Engine {
/// Return [`Definitions`] that can be used to generate definition files for the [`Engine`]. /// Return [`Definitions`] that can be used to generate definition files for the [`Engine`].
@ -345,13 +345,19 @@ fn def_type_name<'a>(ty: &'a str, engine: &'a Engine) -> Cow<'a, str> {
.map(str::trim) .map(str::trim)
.unwrap_or(ty); .unwrap_or(ty);
ty.replace("Iterator<Item=", "Iterator<") let ty = ty
.replace("Iterator<Item=", "Iterator<")
.replace("Dynamic", "?") .replace("Dynamic", "?")
.replace("INT", "int") .replace("INT", "int")
.replace(type_name::<INT>(), "int")
.replace("FLOAT", "float") .replace("FLOAT", "float")
.replace("&str", "String") .replace("&str", "String")
.replace("ImmutableString", "String") .replace("ImmutableString", "String");
.into()
#[cfg(not(feature = "no_float"))]
let ty = ty.replace(type_name::<crate::FLOAT>(), "float");
ty.into()
} }
impl Scope<'_> { impl Scope<'_> {