Files
core/test/rust/fixtures/core.dever
T
2026-11-03 03:32:07 +00:00

75 lines
1.7 KiB
Plaintext

type Row {
name: Text
count: Int
}
sign(value: Int < 0) (answer: Int) pure {
answer = -1
}
sign(value: 0) (answer: Int) pure {
answer = 0
}
sign(value: Int > 0) (answer: Int) pure {
answer = 1
}
main() (answer: Int) {
answer = sum([10, 20, 11]) + sign(3)
}
copyCheck() (answer: Bool) {
original = Row { name = "初始"
count = 1 }
changed = original
changed.name = "修改"
answer = original.name == "初始" and changed.name == "修改"
}
join(first: Text, second: Text) (answer: Text) pure {
answer = first + second
}
textCheck() (answer: Text) {
value = "雪"
joined = join(value, value)
answer = joined + value
}
increment(value: Int) (answer: Int) pure {
answer = value + 1
}
overflowCheck() (answer: Int) {
answer = increment(9223372036854775807)
}
change(value: Row) (answer: Row) {
value.name = value.name + "新"
answer = value
}
pair(value: Int) (count: Int, name: Text) pure {
count = value
name = "雪"
}
total(values: List<Int>) (answer: Int) pure {
answer = sum(values)
}
verify() (answer: Bool) {
original = Row { name = "雪"
count = 1 }
changed = change(original)
values = [1, 2, 3]
result = pair(42)
decimal = 1 / 8
floating = 1.5e0 + 2.0e0
skipped = false and overflowCheck() > 0
answer = main() == 42 and copyCheck() and textCheck() == "雪雪雪" and original.name == "雪" and changed.name == "雪新" and total(values) == 6 and sum(values) == 6 and result.count == 42 and result.name == "雪" and decimal == 0.125 and floating == 3.5e0 and not skipped and length("雪山") == 2 and sign(-3) == -1 and sign(0) == 0
}
arithmetic(value: Int) (answer: Int) pure {
answer = (value * 3 + 7) // 2
}