stabilize record tests

This commit is contained in:
collin 2022-07-28 16:40:48 -07:00
parent 5a26eed8ca
commit 86219c0044
25 changed files with 92 additions and 37 deletions

View File

@ -1,10 +0,0 @@
[main]
a: bool = true;
y: bool = true;
// arr: [u32; 2] = [10, 8];
[constants]
b: bool = true;
[registers]
r0: bool = true;

View File

@ -1,5 +0,0 @@
[main]
i: u32 = 1;
[registers]
r0: [u32; 3] = [0u32; 3];

View File

@ -1,5 +0,0 @@
[main]
i: u32 = 1;
[registers]
r0: [(u32, u32); 3] = [(0u32, 0u32); 3];

View File

@ -1,5 +0,0 @@
[main]
i: u32 = 2;
[registers]
r0: [u32; 3] = [0u32; 3];

View File

@ -1,5 +0,0 @@
[main]
i: u32 = 2;
[registers]
r0: [(u32, u32); 3] = [(0u32, 0u32); 3];

View File

@ -1,6 +1,7 @@
/*
namespace: Compile
expectation: Fail
input_files: inputs/add.in
*/
// This record does define the `gates` variable but with the wrong type.
@ -9,6 +10,6 @@ record Token {
owner: address,
}
function main() -> bool {
return true;
}
function main(a: u8, b:u8) -> u8 {
return a + b;
}

View File

@ -1,6 +1,7 @@
/*
namespace: Compile
expectation: Pass
input_files: inputs/add.in
*/
record Token {
@ -12,6 +13,6 @@ record Token {
amount: u64,
}
function main() -> bool {
return true;
function main(a: u8, b:u8) -> u8 {
return a + b;
}

View File

@ -22,7 +22,7 @@ function mint(r0: address, r1: u64) -> Token {
function main(x: address) -> u64 {
const c: u64 = 1u64;
let t: Token = mint(x, c);
let t: Token = Token { owner: x, gates: 0u64, amount: c};
return t.gates;
}

View File

@ -22,7 +22,7 @@ function mint(owner: address, amount: u64) -> Token {
function main(x: address) -> u64 {
const c: u64 = 1u64;
let t: Token = mint(x, c);
let t: Token = Token { owner: x, gates: 0u64, amount: c};
return t.gates;
}

View File

@ -0,0 +1,3 @@
[main]
a: u8 = 1u8;
b: u8 = 1u8;

View File

@ -0,0 +1,15 @@
/*
namespace: Compile
expectation: Pass
input_file: inputs/flag.in
*/
function main(flag: u8, value: u8) -> u8 {
if (flag == 0u8) {
value += 1u8;
return value;
} else {
value += 2u8;
}
return value;
}

View File

@ -0,0 +1,3 @@
[main]
flag: u8 = 1u8;
value: u8 = 1u8;

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372020]: The field `gates` in a `record` must have type `u64`.\n --> compiler-test:4:1\n |\n 4 | record Token {\n 5 | gates: address,\n 6 | owner: address,\n 7 | }\n | ^\n"

View File

@ -0,0 +1,9 @@
---
namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: no input
initial_ast: 821c447666f4f0e3ec05818c7e5ff8f228768ea9ea89e50cac3c9c4e2286cf83
unrolled_ast: 821c447666f4f0e3ec05818c7e5ff8f228768ea9ea89e50cac3c9c4e2286cf83
ssa_ast: f229b97b92b6e5517e0404a6ba5559c94df673c14ec8f4f10156828f05f4761f

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [EAST0372010]: record `Token` shadowed by\n --> compiler-test:12:1\n |\n 12 | circuit Token { // This circuit cannot have the same name as the record defined above it.\n 13 | x: u32,\n 14 | }\n | ^\n"

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372016]: Record Token defined with more than one variable with the same name.\n --> compiler-test:3:1\n |\n 3 | record Token {\n 4 | // The token owner.\n 5 | owner: address,\n 6 | // The token owner.\n 7 | owner: address, // Cannot define two record variables with the same name.\n 8 | // The Aleo balance (in gates).\n 9 | gates: u64,\n 10 | // The token amount.\n 11 | amount: u64,\n 12 | }\n | ^\n"

View File

@ -0,0 +1,9 @@
---
namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: no input
initial_ast: 91a94b43e7599be7a8d284d8ed68af60521bf2f586c081c46571e6877d42423f
unrolled_ast: 91a94b43e7599be7a8d284d8ed68af60521bf2f586c081c46571e6877d42423f
ssa_ast: f8dd2e6a50e15fc6e503645342f37c1da08ce3a7c90e70f91ff0e9aeb3e20ef9

View File

@ -0,0 +1,9 @@
---
namespace: Compile
expectation: Pass
outputs:
- output:
- initial_input_ast: no input
initial_ast: 1381798c7151d829ababe68636c8f60caa2c4ede84e0603cae658079b4ffdb89
unrolled_ast: 1381798c7151d829ababe68636c8f60caa2c4ede84e0603cae658079b4ffdb89
ssa_ast: a327e9edcf9b23898a9855c61eb03920816ee84c0ab0d71c84faa6169550e1b3

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372003]: Expected type `address` but type `u64` was found\n --> compiler-test:12:28\n |\n 12 | function mint(r0: address, r1: u64) -> Token {\n | ^^\nError [ETYC0372003]: Expected type `u64` but type `address` was found\n --> compiler-test:12:15\n |\n 12 | function mint(r0: address, r1: u64) -> Token {\n | ^^\n"

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372013]: Circuit initialization expression for `Token` is missing member `owner`.\n --> compiler-test:13:12\n |\n 13 | return Token {\n 14 | sender: r0, // This variable should be named `owner`.\n 15 | gates: 0u64,\n 16 | amount: r1,\n 17 | };\n | ^^^^^^\n"

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372019]: The `record` type requires the variable `owner: address`.\n --> compiler-test:4:1\n |\n 4 | record Token {\n 5 | // The Aleo balance (in gates).\n 6 | gates: u64,\n 7 | // The token amount.\n 8 | amount: u64,\n 9 | }\n | ^\n"

View File

@ -0,0 +1,5 @@
---
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372020]: The field `owner` in a `record` must have type `address`.\n --> compiler-test:4:1\n |\n 4 | record Token {\n 5 | gates: u64,\n 6 | owner: bool,\n 7 | }\n | ^\n"