22 * @name Swapped parameter names in overriding predicate.
33 * @description Swapping the parameter names in an overriding method indicates an implementation mistake.
44 * @kind problem
5- * @problem.severity warning
5+ * @problem.severity error
66 * @id ql/override-swapped-name
77 * @tags correctness
88 * maintainability
@@ -13,21 +13,18 @@ import ql
1313
1414pragma [ noinline]
1515private predicate getAnOverridingParameter (
16- ClassPredicate pred , ClassPredicate sup , VarDecl parameter , string parName , string superName ,
17- int index
16+ ClassPredicate pred , ClassPredicate sup , VarDecl parameter , int index
1817) {
1918 pred .overrides ( sup ) and
20- parameter = pred .getParameter ( index ) and
21- parameter .getName ( ) = parName and
22- sup .getParameter ( index ) .getName ( ) = superName
19+ parameter = pred .getParameter ( index )
2320}
2421
25- from
26- ClassPredicate pred , ClassPredicate sup , VarDecl parameter , string parName , string superName ,
27- int index
22+ from ClassPredicate pred , ClassPredicate sup , VarDecl parameter , int index
2823where
29- getAnOverridingParameter ( pred , sup , parameter , parName , superName , index ) and
30- superName != parName and
31- exists ( int other | other != index | sup .getParameter ( other ) .getName ( ) = parName )
32- select parameter , parName + " was $@ in the super class." , sup .getParameter ( index ) ,
33- "named " + superName
24+ getAnOverridingParameter ( pred , sup , parameter , index ) and
25+ sup .getParameter ( index ) .getName ( ) != pred .getParameter ( index ) .getName ( ) and
26+ exists ( int other | other != index |
27+ sup .getParameter ( other ) .getName ( ) = pred .getParameter ( index ) .getName ( )
28+ )
29+ select parameter , pred .getParameter ( index ) .getName ( ) + " was $@ in the super class." ,
30+ sup .getParameter ( index ) , "named " + sup .getParameter ( index ) .getName ( )
0 commit comments