can mlint report undefined variables?
2 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
per isakson
2012-9-28
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 个评论
per isakson
2012-9-28
Yes, it would be more useful if mlint tests for built-in and m-files on the search path.
Daniel Shub
2012-9-28
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!