mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-12 11:12:16 +00:00
They are not keywords anymore. > var cell = ...; > var cell: cell = ...; Motivation: in the future, when structures are implemented, this obviously should be valid: > struct a { ... } > var a = ...; Struct fields will also be allowed to have names int/slice/cell.
40 lines
911 B
Text
40 lines
911 B
Text
fun extractFromTypedTuple(params: [int]) {
|
|
var [payload: int] = params;
|
|
return payload + 10;
|
|
}
|
|
|
|
@method_id(101)
|
|
fun test101(x: int) {
|
|
var params = [x];
|
|
return extractFromTypedTuple(params);
|
|
}
|
|
|
|
fun autoInferIntNull(x: int) {
|
|
if (x > 10) { return null; }
|
|
return x;
|
|
}
|
|
|
|
fun typesAsIdentifiers(builder: builder) {
|
|
var int = 1;
|
|
var cell = builder.endCell();
|
|
var slice = cell.beginParse();
|
|
{
|
|
var cell: cell = cell;
|
|
var tuple: tuple = createEmptyTuple();
|
|
var bool: bool = tuple.tupleAt<int>(0) > 0;
|
|
}
|
|
return int;
|
|
}
|
|
|
|
fun main(value: int) {
|
|
var (x: int, y) = (autoInferIntNull(value), autoInferIntNull(value * 2));
|
|
if (x == null && y == null) { return null; }
|
|
return x == null || y == null ? -1 : x + y;
|
|
}
|
|
|
|
/**
|
|
@testcase | 0 | 3 | 9
|
|
@testcase | 0 | 6 | -1
|
|
@testcase | 0 | 11 | (null)
|
|
@testcase | 101 | 78 | 88
|
|
*/
|