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,您会发现如何添加新的检查器。

07-25 21:33