can mlint report undefined variables?

4 visualizaciones (últimos 30 días)
Tom
Tom el 28 de Sept. de 2012
Is there a way to tell mlint, or is there some other way, to report on unknown identifiers in functions. For example,
function r = test_unknown_variables(x,y)
r = w + v;
end
>> mlint('test_unknown_variables')
L 1 (C 38): Input argument 'x' might be unused. If this is OK, consider replacing it by ~.
L 1 (C 40): Input argument 'y' might be unused. If this is OK, consider replacing it by ~.
It would be nice if mlint had a "strict" mode that reported that w and v are undefined. I know I might later define functions w and v, but basically the way I program, 100% of the time it's a mistake on my part if I have undefined variables.

Respuesta aceptada

per isakson
per isakson el 28 de Sept. de 2012
The problem is that w and v could be m-file functions. There is an optional test that you can apply in the File | Preferences | Code Analyzer.
>> msg = mlint('H:\m\cssm\test_unknown_variables.m')
msg =
2x1 struct array with fields:
message
line
column
fix
>> msg(2).message
ans =
Code Analyzer cannot determine whether 'v' is a variable or a function, and assumes it is a function.
  3 comentarios
per isakson
per isakson el 28 de Sept. de 2012
Yes, it would be more useful if mlint tests for built-in and m-files on the search path.
Daniel Shub
Daniel Shub el 28 de Sept. de 2012
I would think a little regex foo could pull out the potential function names. Then you could use which to test if it is a function. No built in way, but definitely feasible.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Variables en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by