File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed
java/ql/src/Advisory/Documentation Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -16,14 +16,19 @@ ClassOrInterface getTaggedType(ThrowsTag tag) {
1616 result = tag .getFile ( ) .( CompilationUnit ) .getATypeInScope ( )
1717}
1818
19+ predicate canThrow ( Callable callable , Class exception ) {
20+ exception instanceof UncheckedThrowableType
21+ or
22+ callable .getAnException ( ) .getType ( ) .getADescendant ( ) = exception
23+ }
24+
1925// Uses ClassOrInterface as type for thrownType to also cover case where erroneously an interface
2026// type is declared as thrown exception
2127from ThrowsTag throwsTag , ClassOrInterface thrownType , Callable docMethod
2228where
2329 getTaggedType ( throwsTag ) = thrownType and
2430 docMethod .getDoc ( ) .getJavadoc ( ) .getAChild * ( ) = throwsTag and
25- not thrownType instanceof UncheckedThrowableType and
26- not docMethod .getAnException ( ) .getType ( ) .getADescendant ( ) = thrownType
31+ not canThrow ( docMethod , thrownType )
2732select throwsTag ,
2833 "Javadoc for " + docMethod + " claims to throw " + thrownType .getName ( ) +
2934 " but this is impossible."
You can’t perform that action at this time.
0 commit comments