Rename AList -> Pairs due to popular demand.
This commit is contained in:
parent
8e0f32a577
commit
5ce30b2632
|
@ -8,6 +8,7 @@
|
||||||
- **aiken-lsp**: hover and goto definition support on list tail. @rvcas
|
- **aiken-lsp**: hover and goto definition support on list tail. @rvcas
|
||||||
- **aiken-lsp**: hover on prop test via expression. @rvcas
|
- **aiken-lsp**: hover on prop test via expression. @rvcas
|
||||||
- **aiken-lang**: a new way to emit logs that don't get erased. @micahkendall
|
- **aiken-lang**: a new way to emit logs that don't get erased. @micahkendall
|
||||||
|
- **aiken-lang**: new builtin types in the prelude `Pair` and `Pairs`. @KtorZ @Microproofs
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@ pub const BOOL: &str = "Bool";
|
||||||
pub const INT: &str = "Int";
|
pub const INT: &str = "Int";
|
||||||
pub const DATA: &str = "Data";
|
pub const DATA: &str = "Data";
|
||||||
pub const LIST: &str = "List";
|
pub const LIST: &str = "List";
|
||||||
pub const ALIST: &str = "AList";
|
|
||||||
pub const PAIR: &str = "Pair";
|
pub const PAIR: &str = "Pair";
|
||||||
|
pub const PAIRS: &str = "Pairs";
|
||||||
pub const VOID: &str = "Void";
|
pub const VOID: &str = "Void";
|
||||||
pub const G1_ELEMENT: &str = "G1Element";
|
pub const G1_ELEMENT: &str = "G1Element";
|
||||||
pub const G2_ELEMENT: &str = "G2Element";
|
pub const G2_ELEMENT: &str = "G2Element";
|
||||||
|
@ -523,7 +523,7 @@ pub fn prelude(id_gen: &IdGenerator) -> TypeInfo {
|
||||||
let alist_key = generic_var(id_gen.next());
|
let alist_key = generic_var(id_gen.next());
|
||||||
let alist_value = generic_var(id_gen.next());
|
let alist_value = generic_var(id_gen.next());
|
||||||
prelude.types.insert(
|
prelude.types.insert(
|
||||||
ALIST.to_string(),
|
PAIRS.to_string(),
|
||||||
TypeConstructor {
|
TypeConstructor {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
parameters: vec![alist_key.clone(), alist_value.clone()],
|
parameters: vec![alist_key.clone(), alist_value.clone()],
|
||||||
|
@ -1447,7 +1447,7 @@ pub fn map(k: Rc<Type>, v: Rc<Type>) -> Rc<Type> {
|
||||||
args: vec![pair(k, v)],
|
args: vec![pair(k, v)],
|
||||||
alias: Some(
|
alias: Some(
|
||||||
TypeAliasAnnotation {
|
TypeAliasAnnotation {
|
||||||
alias: ALIST.to_string(),
|
alias: PAIRS.to_string(),
|
||||||
parameters: vec!["k".to_string(), "v".to_string()],
|
parameters: vec!["k".to_string(), "v".to_string()],
|
||||||
annotation: Annotation::Constructor {
|
annotation: Annotation::Constructor {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
|
|
|
@ -885,9 +885,9 @@ fn acceptance_test_7_unzip_tuple() {
|
||||||
#[test]
|
#[test]
|
||||||
fn acceptance_test_7_unzip_pair() {
|
fn acceptance_test_7_unzip_pair() {
|
||||||
let src = r#"
|
let src = r#"
|
||||||
type AList<a,b> = List<Pair<a,b>>
|
type Pairs<a,b> = List<Pair<a,b>>
|
||||||
|
|
||||||
pub fn unzip(xs: AList<a, b>) -> Pair<List<a>, List<b>> {
|
pub fn unzip(xs: Pairs<a, b>) -> Pair<List<a>, List<b>> {
|
||||||
when xs is {
|
when xs is {
|
||||||
[] -> Pair([], [])
|
[] -> Pair([], [])
|
||||||
[Pair(a, b), ..rest] -> {
|
[Pair(a, b), ..rest] -> {
|
||||||
|
@ -1573,16 +1573,16 @@ fn acceptance_test_14_list_creation() {
|
||||||
#[test]
|
#[test]
|
||||||
fn acceptance_test_15_zero_arg() {
|
fn acceptance_test_15_zero_arg() {
|
||||||
let src = r#"
|
let src = r#"
|
||||||
pub opaque type AList<key, value> {
|
pub opaque type Pairs<key, value> {
|
||||||
inner: List<Pair<key, value>>,
|
inner: List<Pair<key, value>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() {
|
pub fn new() {
|
||||||
AList { inner: [] }
|
Pairs { inner: [] }
|
||||||
}
|
}
|
||||||
|
|
||||||
test new_1() {
|
test new_1() {
|
||||||
new() == AList { inner: [] }
|
new() == Pairs { inner: [] }
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
|
@ -2116,18 +2116,18 @@ fn acceptance_test_22_filter_map() {
|
||||||
#[test]
|
#[test]
|
||||||
fn acceptance_test_23_to_list() {
|
fn acceptance_test_23_to_list() {
|
||||||
let src = r#"
|
let src = r#"
|
||||||
pub type AList<key, value> =
|
pub type Pairs<key, value> =
|
||||||
List<Pair<key, value>>
|
List<Pair<key, value>>
|
||||||
|
|
||||||
pub opaque type AssocList<key, value> {
|
pub opaque type AssocList<key, value> {
|
||||||
inner: AList<key, value>,
|
inner: Pairs<key, value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() -> AssocList<key, value> {
|
pub fn new() -> AssocList<key, value> {
|
||||||
AssocList { inner: [] }
|
AssocList { inner: [] }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn to_list(m: AssocList<key, value>) -> AList<key, value> {
|
pub fn to_list(m: AssocList<key, value>) -> Pairs<key, value> {
|
||||||
m.inner
|
m.inner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2139,7 +2139,7 @@ fn acceptance_test_23_to_list() {
|
||||||
AssocList { inner: do_insert(m.inner, k, v) }
|
AssocList { inner: do_insert(m.inner, k, v) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_insert(elems: AList<key, value>, k: key, v: value) -> AList<key, value> {
|
fn do_insert(elems: Pairs<key, value>, k: key, v: value) -> Pairs<key, value> {
|
||||||
when elems is {
|
when elems is {
|
||||||
[] ->
|
[] ->
|
||||||
[Pair(k, v)]
|
[Pair(k, v)]
|
||||||
|
@ -2997,18 +2997,18 @@ fn acceptance_test_28_unique_list() {
|
||||||
fn acceptance_test_29_union_pair() {
|
fn acceptance_test_29_union_pair() {
|
||||||
let src = r#"
|
let src = r#"
|
||||||
pub opaque type AssocList<key, value> {
|
pub opaque type AssocList<key, value> {
|
||||||
inner: AList<key, value>,
|
inner: Pairs<key, value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() -> AssocList<key, value> {
|
pub fn new() -> AssocList<key, value> {
|
||||||
AssocList { inner: [] }
|
AssocList { inner: [] }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn from_list(xs: AList<key, value>) -> AssocList<key, value> {
|
pub fn from_list(xs: Pairs<key, value>) -> AssocList<key, value> {
|
||||||
AssocList { inner: do_from_list(xs) }
|
AssocList { inner: do_from_list(xs) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_from_list(xs: AList<key, value>) -> AList<key, value> {
|
fn do_from_list(xs: Pairs<key, value>) -> Pairs<key, value> {
|
||||||
when xs is {
|
when xs is {
|
||||||
[] ->
|
[] ->
|
||||||
[]
|
[]
|
||||||
|
@ -3025,7 +3025,7 @@ fn acceptance_test_29_union_pair() {
|
||||||
AssocList { inner: do_insert(m.inner, k, v) }
|
AssocList { inner: do_insert(m.inner, k, v) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_insert(elems: AList<key, value>, k: key, v: value) -> AList<key, value> {
|
fn do_insert(elems: Pairs<key, value>, k: key, v: value) -> Pairs<key, value> {
|
||||||
when elems is {
|
when elems is {
|
||||||
[] ->
|
[] ->
|
||||||
[Pair(k, v)]
|
[Pair(k, v)]
|
||||||
|
@ -3046,9 +3046,9 @@ fn acceptance_test_29_union_pair() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_union(
|
fn do_union(
|
||||||
left: AList<key, value>,
|
left: Pairs<key, value>,
|
||||||
right: AList<key, value>,
|
right: Pairs<key, value>,
|
||||||
) -> AList<key, value> {
|
) -> Pairs<key, value> {
|
||||||
when left is {
|
when left is {
|
||||||
[] ->
|
[] ->
|
||||||
right
|
right
|
||||||
|
|
|
@ -18,7 +18,7 @@ validator(token_name: ByteArray, utxo_ref: OutputReference) {
|
||||||
mint
|
mint
|
||||||
|> value.from_minted_value
|
|> value.from_minted_value
|
||||||
|> value.tokens(policy_id)
|
|> value.tokens(policy_id)
|
||||||
|> dict.to_list()
|
|> dict.to_pairs()
|
||||||
when rdmr is {
|
when rdmr is {
|
||||||
Mint -> {
|
Mint -> {
|
||||||
expect
|
expect
|
||||||
|
|
|
@ -60,7 +60,7 @@ validator(creator: ByteArray) {
|
||||||
mint
|
mint
|
||||||
|> value.from_minted_value
|
|> value.from_minted_value
|
||||||
|> value.tokens(policy_id)
|
|> value.tokens(policy_id)
|
||||||
|> dict.to_list()
|
|> dict.to_pairs()
|
||||||
|
|
||||||
when rdmr is {
|
when rdmr is {
|
||||||
Mint(total) -> {
|
Mint(total) -> {
|
||||||
|
|
|
@ -20,7 +20,7 @@ validator(token_name: ByteArray, utxo_ref: OutputReference) {
|
||||||
mint
|
mint
|
||||||
|> value.from_minted_value
|
|> value.from_minted_value
|
||||||
|> value.tokens(policy_id)
|
|> value.tokens(policy_id)
|
||||||
|> dict.to_list()
|
|> dict.to_pairs()
|
||||||
|
|
||||||
when rdmr is {
|
when rdmr is {
|
||||||
Mint -> {
|
Mint -> {
|
||||||
|
@ -43,7 +43,7 @@ validator(token_name: ByteArray, policy_id: ByteArray) {
|
||||||
mint
|
mint
|
||||||
|> value.from_minted_value
|
|> value.from_minted_value
|
||||||
|> value.tokens(policy_id)
|
|> value.tokens(policy_id)
|
||||||
|> dict.to_list()
|
|> dict.to_pairs()
|
||||||
|
|
||||||
amount == -1 && asset_name == token_name
|
amount == -1 && asset_name == token_name
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue