close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

#1461 closed defect (fixed)

Error con los tipos al evaluar una expresión sencilla

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Kernel Version: 3.1
Severity: critical Keywords:
Cc:

Description

Al evaluar el siguiente código:

Date first = y2000;
Date last = y2001;
Real DateToIndex(first)-DateToIndex(last);

encuentro el error:

ERROR: [1] No ha sido posible convertir de Real hacia Date para el objeto '$tmp$'

ERROR: [2] Argumentos erróneos para Date - d - x {Date d [, Real x=1]}

pero no consigo entender por qué.

Change History (3)

comment:1 Changed 13 years ago by Víctor de Buen Remiro

Resolution: wontfix
Status: newclosed

Los operadores de tipado tienen prioridad sobre el resto por lo que lo que estás escribiendo es equivalente a

Date first = y2000;
Date last = y2001;
(Real DateToIndex(first)) - DateToIndex(last);

cuando lo que quieres decir es esto otro:

Date first = y2000;
Date last = y2001;
Real (DateToIndex(first) - DateToIndex(last));

o quizás esto otro

Date first = y2000;
Date last = y2001;
Real aux = DateToIndex(first) - DateToIndex(last);

El problema es que en el ámbito global prevalece la gramática de la última sentencia que es Date en este caso. En el ámbito local es el del valor de retorno y por eso no daría este problema

Real {
Date first = y2000;
Date last = y2001;
Real DateToIndex(first) - DateToIndex(last)
};

comment:2 Changed 13 years ago by Pedro Gea

Resolution: wontfix
Status: closedreopened

En mi opinión esto es un error, no veo ningún sentido a que el operador de tipado sea prioritario frente a cualquier otro operador, más bien debería ser al revés.

No sé si podría justificarse de algún modo esta elección, si no, creo que es algo para solucionar antes o después. Si esto resulta algo muy complicado, pues después.

comment:3 Changed 13 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

Esto no es un error , es así como es la sitaxis de TOL te guste o no.

Note: See TracTickets for help on using tickets.