Erro em função simples

Estou com um erro em um função simples, mas não sei o que pode ser.

Vocês já viram esse erro:

mismatched input 'sRetorno' expecting {, ';', CRLF}


#INCLUDE "protheus.ch"
user function getTurno(mat, filial, cDia)
    default cDia = dToS(Date())
    Local sRetorno := '0'

    QRY := GetNextAlias()

    BeginSQL Alias QRY
        select pf_turnopa turno, pf_sequepa seq 
        from %table:spf%  spf
        where pf_mat = %exp:mat% and pf_filial = %exp:filial% and spf.%notdel%
            and pf_data <= %exp:cDia%
        order by pf_data desc
    endSql

    dbGoTop() 

    sRetorno := '0'
    If !(QRY)->(Eof())
        sRetorno := QRY->TURNO
    Endif

    (QRY)->(dbclosearea())
Return sRetorno

Parece um erro de tipagem, eu faria duas coisas:

mudaria o nome da variável para cRetorno e mudaria as linhas de definição para conter a quantidade de caracteres que tem no campo do banco:

cretorno := '000'

As sugestões foram pertinentes, mas o erro continua!

mais uma tentativa é fazer cRetorno := (QRY)->TURNO

como o QRY é um string precisa desses parenteses…

se também não der certo… aí o que vai ajudar mais é o debug mesmo, debugar linha a linha olhando o que está vindo na QRY->TURNO e se a tipagem está mesmo caracter, e conferindo se na cretorno está com tipagem caracter também…

Fiz a correção solicitada, porém o erro continua.
A função está funcionando normalmente, conforme anexo com o debug.

Fiz a alteração na query, mas continua dando erro no Code Analysis. No TDS funciona normalmente, não dá erro.
A função retorna o turno normalmente.

Descobri! O erro estava na linha 3:

default cDia = dToS(Date())

Falto o operador correto de atribuição := e não =

Correção:

default cDia := dToS(Date())

Descobri!

O erro estava na linha 3: default cDia = dToS(Date())

Faltou o operador correto de atribuição := e não = Correção: default cDia := dToS(Date())

Normalmente, quando o IDE aponta uma linha de erro e está linha está correta, o erro está na linha de cima.