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!