mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-15 04:32:21 +00:00
Lots of changes, actually. Most noticeable are: - traditional //comments - #include -> import - a rule "import what you use" - ~ found -> !found (for -1/0) - null() -> null - is_null?(v) -> v == null - throw is a keyword - catch with swapped arguments - throw_if, throw_unless -> assert - do until -> do while - elseif -> else if - drop ifnot, elseifnot - drop rarely used operators A testing framework also appears here. All tests existed earlier, but due to significant syntax changes, their history is useless.
23 lines
372 B
Text
23 lines
372 B
Text
@pure
|
|
fun validate_input(input: cell): (int, int) {
|
|
var (x, y, z, correct) = compute_data_size?(input, 10);
|
|
assert(correct) throw 102;
|
|
}
|
|
|
|
@pure
|
|
fun someF(): int {
|
|
var c: cell = begin_cell().end_cell();
|
|
validate_input(c);
|
|
return 0;
|
|
}
|
|
|
|
fun main() {}
|
|
|
|
/**
|
|
@compilation_should_fail
|
|
@stderr
|
|
"""
|
|
an impure operation in a pure function
|
|
assert(correct)
|
|
"""
|
|
*/
|