Semántica de "retorno opcional" de Groovy

En Groovy, eldeclaración de retorno es opcional, permitiéndote escribir métodos como:

def add(a, b) {
    a + b
}

... lo que añadea yb y devuelve el resultado a la persona que llama.

Sin embargo, me pregunto qué es la semántica cuando el método tiene múltiples "declaraciones" de retorno. Por ejemplo, en Java puedes tener:

String append(String a, String b) {
    if (a == null) {
        return b;
    }
    return a + b;
}

Esto podría (hipotéticamente) ser traducido a Groovy como:

def append(a, b) {
    if (! a) {
        b
    }
    a + b
}

Sin embargo, en este caso, ¿cómo sabe Groovy queb dentro de laif declaración debe ser devuelto? ¿O no es así? Supongo que Groovy no puede simplemente tratar cualquier declaración cuyo resultado no se use como unreturn¿correcto? ¿Hay alguna semántica claramente definida sobre cómo se comporta la característica de "retorno opcional" en este caso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta