1erl_lint(3) Erlang Module Definition erl_lint(3)
2
3
4
6 erl_lint - The Erlang code linter.
7
9 This module is used to check Erlang code for illegal syntax and other
10 bugs. It also warns against coding practices that are not recommended.
11
12 The errors detected include:
13
14 * Redefined and undefined functions
15
16 * Unbound and unsafe variables
17
18 * Illegal record use
19
20 The warnings detected include:
21
22 * Unused functions and imports
23
24 * Unused variables
25
26 * Variables imported into matches
27
28 * Variables exported from if/case/receive
29
30 * Variables shadowed in funs and list comprehensions
31
32 Some of the warnings are optional, and can be turned on by specifying
33 the appropriate option, described below.
34
35 The functions in this module are invoked automatically by the Erlang
36 compiler. There is no reason to invoke these functions separately
37 unless you have written your own Erlang compiler.
38
40 error_info() = {erl_anno:line(), module(), error_description()}
41
42 error_description() = term()
43
45 format_error(ErrorDescriptor) -> io_lib:chars()
46
47 Types:
48
49 ErrorDescriptor = error_description()
50
51 Takes an ErrorDescriptor and returns a string that describes the
52 error or warning. This function is usually called implicitly
53 when processing an ErrorInfo structure (see section Error Infor‐
54 mation).
55
56 is_guard_test(Expr) -> boolean()
57
58 Types:
59
60 Expr = erl_parse:abstract_expr()
61
62 Tests if Expr is a legal guard test. Expr is an Erlang term rep‐
63 resenting the abstract form for the expression.
64 erl_parse:parse_exprs(Tokens) can be used to generate a list of
65 Expr.
66
67 module(AbsForms) -> {ok, Warnings} | {error, Errors, Warnings}
68
69 module(AbsForms, FileName) ->
70 {ok, Warnings} | {error, Errors, Warnings}
71
72 module(AbsForms, FileName, CompileOptions) ->
73 {ok, Warnings} | {error, Errors, Warnings}
74
75 Types:
76
77 AbsForms = [erl_parse:abstract_form() |
78 erl_parse:form_info()]
79 FileName = atom() | string()
80 CompileOptions = [compile:option()]
81 Warnings = [{file:filename(), [ErrorInfo]}]
82 Errors = [{FileName2 :: file:filename(), [ErrorInfo]}]
83 ErrorInfo = error_info()
84
85 Checks all the forms in a module for errors. It returns:
86
87 {ok,Warnings}:
88 There are no errors in the module.
89
90 {error,Errors,Warnings}:
91 There are errors in the module.
92
93 As this module is of interest only to the maintainers of the
94 compiler, and to avoid the same description in two places, the
95 elements of Options that control the warnings are only described
96 in the compile(3) module.
97
98 AbsForms of a module, which comes from a file that is read
99 through epp, the Erlang preprocessor, can come from many files.
100 This means that any references to errors must include the file‐
101 name, see the epp(3) module or parser (see the erl_parse(3) mod‐
102 ule). The returned errors and warnings have the following for‐
103 mat:
104
105 [{FileName2,[ErrorInfo]}]
106
107 The errors and warnings are listed in the order in which they
108 are encountered in the forms. The errors from one file can
109 therefore be split into different entries in the list of errors.
110
112 ErrorInfo is the standard ErrorInfo structure that is returned from all
113 I/O modules. The format is as follows:
114
115 {ErrorLine, Module, ErrorDescriptor}
116
117 A string describing the error is obtained with the following call:
118
119 Module:format_error(ErrorDescriptor)
120
122 epp(3), erl_parse(3)
123
124
125
126Ericsson AB stdlib 3.8.2.1 erl_lint(3)