1 // RUN: %check_clang_tidy %s bugprone-easily-swappable-parameters %t \
2 // RUN:   -config='{CheckOptions: [ \
3 // RUN:     {key: bugprone-easily-swappable-parameters.MinimumLength, value: 3}, \
4 // RUN:     {key: bugprone-easily-swappable-parameters.IgnoredParameterNames, value: ""}, \
5 // RUN:     {key: bugprone-easily-swappable-parameters.IgnoredParameterTypeSuffixes, value: ""}, \
6 // RUN:     {key: bugprone-easily-swappable-parameters.QualifiersMix, value: 0}, \
7 // RUN:     {key: bugprone-easily-swappable-parameters.ModelImplicitConversions, value: 0}, \
8 // RUN:     {key: bugprone-easily-swappable-parameters.SuppressParametersUsedTogether, value: 0}, \
9 // RUN:     {key: bugprone-easily-swappable-parameters.NamePrefixSuffixSilenceDissimilarityTreshold, value: 0} \
10 // RUN:  ]}' --
11 
add(int Left,int Right)12 int add(int Left, int Right) { return Left + Right; } // NO-WARN: Only 2 parameters.
13 
magic(int Left,int Right,int X,int Y)14 int magic(int Left, int Right, int X, int Y) { return 0; }
15 // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: 4 adjacent parameters of 'magic' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
16 // CHECK-MESSAGES: :[[@LINE-2]]:15: note: the first parameter in the range is 'Left'
17 // CHECK-MESSAGES: :[[@LINE-3]]:43: note: the last parameter in the range is 'Y'
18 
multipleDistinctTypes(int I,int J,int K,long L,long M,double D,double E,double F)19 void multipleDistinctTypes(int I, int J, int K,
20                            long L, long M,
21                            double D, double E, double F) {}
22 // CHECK-MESSAGES: :[[@LINE-3]]:28: warning: 3 adjacent parameters of 'multipleDistinctTypes' of similar type ('int')
23 // CHECK-MESSAGES: :[[@LINE-4]]:32: note: the first parameter in the range is 'I'
24 // CHECK-MESSAGES: :[[@LINE-5]]:46: note: the last parameter in the range is 'K'
25 // NO-WARN: The [long, long] range is length of 2.
26 // CHECK-MESSAGES: :[[@LINE-5]]:28: warning: 3 adjacent parameters of 'multipleDistinctTypes' of similar type ('double')
27 // CHECK-MESSAGES: :[[@LINE-6]]:35: note: the first parameter in the range is 'D'
28 // CHECK-MESSAGES: :[[@LINE-7]]:55: note: the last parameter in the range is 'F'
29