[fine] Check the return type of functions
A function returns what it says it does, the check is that the body returns the right value.
This commit is contained in:
parent
257a7e64c2
commit
d893002ec2
5 changed files with 70 additions and 14 deletions
|
|
@ -1,22 +1,22 @@
|
|||
fun test() {
|
||||
fun test() -> f64 {
|
||||
if true { "discarded"; 23 } else { 45 }
|
||||
}
|
||||
|
||||
// @no-errors
|
||||
// Here come some type probes!
|
||||
// (type of the condition)
|
||||
// @type: 20 bool
|
||||
// @type: 27 bool
|
||||
//
|
||||
// (the discarded expression)
|
||||
// @type: 27 string
|
||||
// @type: 34 string
|
||||
//
|
||||
// (the "then" clause)
|
||||
// @type: 40 f64
|
||||
// @type: 43 f64
|
||||
// @type: 47 f64
|
||||
// @type: 50 f64
|
||||
//
|
||||
// (the "else" clause)
|
||||
// @type: 52 f64
|
||||
// @type: 55 f64
|
||||
// @type: 59 f64
|
||||
// @type: 62 f64
|
||||
//
|
||||
// @concrete:
|
||||
// | File
|
||||
|
|
@ -26,6 +26,10 @@ fun test() {
|
|||
// | ParamList
|
||||
// | LeftParen:'"("'
|
||||
// | RightParen:'")"'
|
||||
// | ReturnType
|
||||
// | Arrow:'"->"'
|
||||
// | TypeExpression
|
||||
// | Identifier:'"f64"'
|
||||
// | Block
|
||||
// | LeftBrace:'"{"'
|
||||
// | IfStatement
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue