在org.eclipse.cdt.codan.internal.core.CodanRunner
中,我找到了以下代码:
CheckersRegistry chegistry = CheckersRegistry.getInstance();
chegistry包含许多Checkers,包括
ReturnChecker
。...
for (IChecker checker : chegistry) {
...
((IRunnableInEditorChecker) checker).processModel(model, context);
...
}
该代码最终调用
ReturnChecker
的方法,以在函数体(IASTFunctionDefinition
)中的语句中搜索return语句。如果缺少该语句,则调用reportNoRet()
。编辑器将函数标记为“不返回,函数返回非空”。有没有一种方法可以覆盖此ReturnChecker(或任何其他检查器),以便仅在某些情况下不调用“ reportNoRet”?我也想知道是否有添加检查器的方法(我找不到扩展点)。
最佳答案
您可以尝试扩展该类以执行自己的检查,但是将始终使用基本检查器。也许最好为您的语言扩展创建一组新的检查器。看一下here,您会发现如何添加新的检查器。