E07490: function must return a value

Category: E07xxx Full resolution · Reported in phase: FULL_RESOLUTION · Classification: FUNCTION_MUST_RETURN_VALUE · All error codes

What went wrong

A function is expected to return a value based on its usage, but no return declaration is provided.

Worked examples

Compilable examples demonstrating this error and the correct fix:

  • ek9 -q 866 (Why must functions used with stream call return a value?)

How to fix it

  1. Add return declaration to function

Common causes

  • Function signature missing return
  • Void function used where return expected

See also

  • E07490: function missing return (this error)
  • E07400: missing return declaration

Examples

Every example is compiled by the EK9 compiler: the first fails exactly as captioned, the others fix it.

Fails with E07490: function must return a value

#!ek9
defines module error.e07490.bad

  defines function

    sayHello()
      stdout <- Stdout()
      stdout.println("hello")

    greetAll()
      stdout <- Stdout()

      //call passes on what each function returns, and sayHello returns nothing
      cat [sayHello] | call > stdout

Fixed: Call functions that return a value

#!ek9
defines module error.e07490.good

  defines function

    greeting()
      <- rtn as String: "hello"

    greetAll()
      stdout <- Stdout()
      cat [greeting] | call > stdout

Questions and answers

These Q&A entries show E07490 and its fix: