Summary: Previously we just reported NONEXHAUSTIVE_PATTERN_MATCH, which was (1) not correct because not only patterns can cause nonexhaustive behavior, but also guards, and (2) the Erlang runtime reports errors more precisely, indicating whether the nonexhaustive behavior occurs with `if`, `case`, functions or match expressions. Reviewed By: rgrig Differential Revision: D29681637 fbshipit-source-id: 74a25b371master
parent
02d413061a
commit
c337b06258
@ -1,10 +0,0 @@
|
|||||||
## Nonexhaustive pattern match in Erlang
|
|
||||||
|
|
||||||
Reports an error when a function clause is missing.
|
|
||||||
|
|
||||||
For example, if we call `tail([])` and the full definition of `tail` is
|
|
||||||
```erlang
|
|
||||||
tail([_|Xs]) -> Xs.
|
|
||||||
```
|
|
||||||
|
|
||||||
The error is also reported if the failing pattern match is in a `case` expression.
|
|
@ -0,0 +1,13 @@
|
|||||||
|
## No matching case clause in Erlang
|
||||||
|
|
||||||
|
Reports an error when none of the clauses of a `case` match the expression. Corresponds to the `{case_clause,V}` error in the Erlang runtime.
|
||||||
|
|
||||||
|
For example, if we call `tail([])` and the full definition of `tail` is
|
||||||
|
```erlang
|
||||||
|
tail(X) ->
|
||||||
|
case X of
|
||||||
|
[_|T] -> T
|
||||||
|
end.
|
||||||
|
```
|
||||||
|
|
||||||
|
This error is reported if either the pattern(s) or the guard(s) prevent matching any of the clauses.
|
@ -0,0 +1,10 @@
|
|||||||
|
## No matching function clause in Erlang
|
||||||
|
|
||||||
|
Reports an error when none of the clauses of a function match the arguments of a call. Corresponds to the `function_clause` error in the Erlang runtime.
|
||||||
|
|
||||||
|
For example, if we call `tail([])` and the full definition of `tail` is
|
||||||
|
```erlang
|
||||||
|
tail([_|Xs]) -> Xs.
|
||||||
|
```
|
||||||
|
|
||||||
|
This error is reported if either the pattern(s) or the guard(s) prevent matching any of the clauses.
|
@ -0,0 +1,5 @@
|
|||||||
|
## No match of right hand side value in Erlang
|
||||||
|
|
||||||
|
Reports an error when the right hand side value of a `match` expression does not match the pattern on the left hand side. Corresponds to the `{badmatch,V}` error in the Erlang runtime.
|
||||||
|
|
||||||
|
For example, `[H|T] = []` gives the error because the left hand side pattern requires at least one element in the list on the right hand side.
|
@ -0,0 +1,12 @@
|
|||||||
|
## No true branch when evaluating an if expression in Erlang
|
||||||
|
|
||||||
|
Reports an error when none of the branches of an `if` expression evaluate to true. Corresponds to the `if_clause` error in the Erlang runtime.
|
||||||
|
|
||||||
|
For example, if we call `sign(0)` and the full definition of `sign` is
|
||||||
|
```erlang
|
||||||
|
sign(X) ->
|
||||||
|
if
|
||||||
|
X > 0 -> positive;
|
||||||
|
X < 0 -> negative
|
||||||
|
end.
|
||||||
|
```
|
@ -1,15 +1,15 @@
|
|||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_add1_Bad/0, -9, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_add1_Bad/0, -9, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_add2_Bad/0, -24, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_add2_Bad/0, -24, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_idiv1_Bad/0, -114, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_idiv1_Bad/0, -114, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul1_Bad/0, -69, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul1_Bad/0, -69, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul2_Bad/0, -84, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul2_Bad/0, -84, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul3_Bad/0, -99, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_mul3_Bad/0, -99, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_multiple_Bad/0, -158, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_multiple_Bad/0, -158, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_rem_Bad/0, -145, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_rem_Bad/0, -145, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_sub1_Bad/0, -39, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_sub1_Bad/0, -39, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_sub2_Bad/0, -54, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_sub2_Bad/0, -54, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_uminus1_Bad/0, -170, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_uminus1_Bad/0, -170, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, test_uminus2_Bad/0, -183, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, test_uminus2_Bad/0, -183, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/arithmetic.erl, warn/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/features/src/arithmetic.erl, warn/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/block.erl, test_block_Bad/0, -15, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no pattern match here]
|
codetoanalyze/erlang/features/src/block.erl, test_block_Bad/0, -15, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `warn/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/features/src/block.erl, warn/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/features/src/block.erl, warn/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_simple/1, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_simple/1, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_test_simple3_Bad/0, -14, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `case_simple/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_test_simple3_Bad/0, -14, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `case_simple/1`,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_test_tail3_Bad/0, -15, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `tail_with_case/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_expression.erl, case_test_tail3_Bad/0, -15, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `tail_with_case/1`,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_expression.erl, tail_with_case/1, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_expression.erl, tail_with_case/1, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_guards.erl, accepts_positive/1, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_guards.erl, accepts_positive/1, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_guards.erl, accepts_positive2/1, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_guards.erl, accepts_positive2/1, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_guards.erl, test_accepts_positive2_Bad/0, -16, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive2/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_guards.erl, test_accepts_positive2_Bad/0, -16, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive2/1`,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/case_guards.erl, test_accepts_positive_Bad/0, -15, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/case_guards.erl, test_accepts_positive_Bad/0, -15, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no matching case clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, assert_empty/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, assert_empty/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, assert_second_is_nil/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, assert_second_is_nil/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_empty2_Bad/0, -12, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `assert_empty/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_empty2_Bad/0, -12, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `assert_empty/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_empty3_Bad/0, -14, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `assert_empty/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_empty3_Bad/0, -14, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `assert_empty/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_secondnil3_Bad/0, -20, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `assert_second_is_nil/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_secondnil3_Bad/0, -20, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `assert_second_is_nil/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_tail3_Bad/0, -8, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `tail/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, list_match_test_tail3_Bad/0, -8, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `tail/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function.erl, tail/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function.erl, tail/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, accepts_positive/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, accepts_positive/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, accepts_positive2/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, accepts_positive2/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, fp_accepts_all_tricky3/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, fp_accepts_all_tricky3/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, possible_exception/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, possible_exception/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_accepts_positive2_Bad/0, -23, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive2/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_accepts_positive2_Bad/0, -23, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive2/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_accepts_positive_Bad/0, -19, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_accepts_positive_Bad/0, -19, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_possible_exception_Bad/0, -37, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `possible_exception/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/function_guards.erl, test_possible_exception_Bad/0, -37, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `possible_exception/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/if_expression.erl, accepts_positive/1, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/if_expression.erl, accepts_positive/1, 1, NO_TRUE_BRANCH_IN_IF, no_bucket, ERROR, [*** LATENT ***,no true branch in if expression here]
|
||||||
codetoanalyze/erlang/nonmatch/src/if_expression.erl, test_accepts_positive_Bad/0, -13, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/if_expression.erl, test_accepts_positive_Bad/0, -13, NO_TRUE_BRANCH_IN_IF, no_bucket, ERROR, [calling context starts here,in call to `accepts_positive/1`,no true branch in if expression here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_b_Bad/0, 1, CONSTANT_ADDRESS_DEREFERENCE, no_bucket, WARNING, [in call to `two/0`,is the constant 2,assigned,returned,return from call to `two/0`,invalid access occurs here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_b_Bad/0, 1, CONSTANT_ADDRESS_DEREFERENCE, no_bucket, WARNING, [in call to `two/0`,is the constant 2,assigned,returned,return from call to `two/0`,invalid access occurs here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_b_Bad/0, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_b_Bad/0, 1, NO_MATCH_OF_RHS, no_bucket, ERROR, [no match of RHS here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_e_Bad/0, -15, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `tail/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_e_Bad/0, -15, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `tail/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_g_Bad/0, 7, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [calling context starts here,in call to `only_accepts_one/1`,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, match_test_g_Bad/0, 7, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [calling context starts here,in call to `only_accepts_one/1`,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, only_accepts_one/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, only_accepts_one/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
codetoanalyze/erlang/nonmatch/src/match.erl, tail/1, 0, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [*** LATENT ***,no pattern match here]
|
codetoanalyze/erlang/nonmatch/src/match.erl, tail/1, 0, NO_MATCHING_FUNCTION_CLAUSE, no_bucket, ERROR, [*** LATENT ***,no matching function clause here]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, fp_test_f_Bad/0, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [no pattern match here]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, fp_test_f_Bad/0, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [no matching case clause here]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, fp_test_g_Ok/0, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [no pattern match here]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, fp_test_g_Ok/0, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [no matching case clause here]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, test_a_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to sink/1]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, test_a_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to sink/1]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, test_c_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to sink/1]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, test_c_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to sink/1]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, test_d_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to call_sink_indirectly/1,call to call_sink/1,call to sink/1]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, test_d_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to source/0,call to call_sink_indirectly/1,call to call_sink/1,call to sink/1]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, test_h_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to dirty_if_argument_nil/1,call to source/0,call to sink/1]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, test_h_Bad/0, 0, TOPL_ERROR, no_bucket, ERROR, [call to dirty_if_argument_nil/1,call to source/0,call to sink/1]
|
||||||
codetoanalyze/erlang/topl/src/topl_taint.erl, test_j_Bad/0, 1, NONEXHAUSTIVE_PATTERN_MATCH, no_bucket, ERROR, [no pattern match here]
|
codetoanalyze/erlang/topl/src/topl_taint.erl, test_j_Bad/0, 1, NO_MATCHING_CASE_CLAUSE, no_bucket, ERROR, [no matching case clause here]
|
||||||
|
Loading…
Reference in new issue