File tree 1 file changed +7
-2
lines changed
java/ql/src/Advisory/Documentation
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) {
16
16
result = tag .getFile ( ) .( CompilationUnit ) .getATypeInScope ( )
17
17
}
18
18
19
+ predicate canThrow ( Callable callable , Class exception ) {
20
+ exception instanceof UncheckedThrowableType
21
+ or
22
+ callable .getAnException ( ) .getType ( ) .getADescendant ( ) = exception
23
+ }
24
+
19
25
// Uses ClassOrInterface as type for thrownType to also cover case where erroneously an interface
20
26
// type is declared as thrown exception
21
27
from ThrowsTag throwsTag , ClassOrInterface thrownType , Callable docMethod
22
28
where
23
29
getTaggedType ( throwsTag ) = thrownType and
24
30
docMethod .getDoc ( ) .getJavadoc ( ) .getAChild * ( ) = throwsTag and
25
- not thrownType instanceof UncheckedThrowableType and
26
- not docMethod .getAnException ( ) .getType ( ) .getADescendant ( ) = thrownType
31
+ not canThrow ( docMethod , thrownType )
27
32
select throwsTag ,
28
33
"Javadoc for " + docMethod + " claims to throw " + thrownType .getName ( ) +
29
34
" but this is impossible."
You can’t perform that action at this time.
0 commit comments