在线文档教程
Erlang 20

erl_lint

erl_lint

模块

erl_lint

模块摘要

Erlang代码链接器。

描述

该模块用于检查Erlang代码是否存在非法语法和其他错误。它还警告不要使用不推荐的编码方法。

检测到的错误包括:

  • 重新定义和未定义的函数

  • 未绑定和不安全变量

  • 非法记录使用

发现的警告包括:

  • 未使用的函数和导入

  • 未用变量

  • 导入到匹配中的变量

  • 输出的变量if/case/receive

  • 变量隐藏在fun和列表理解

有些警告是可选的,可以通过指定适当的选项打开,如下所述。

该模块中的函数由Erlang编译器自动调用。除非您已经编写了自己的Erlang编译器,否则没有理由单独调用这些函数。

数据类型

error_info() = {erl_anno:line(), module(),error_description()}

error_description() = term()

输出

format_error(ErrorDescriptor) -> io_lib:chars()

类型

接收ErrorDescriptor并返回描述错误或警告的字符串。这个函数通常在处理ErrorInfo结构时被隐式调用(参见章节Error Information)。

is_guard_test(Expr) -> boolean()

类型

测试如果Expr是个法律保护考试。Expr表示表达式的抽象形式的Erlang术语。erl_parse:parse_exprs(Tokens)可用于生成Expr...

module(AbsForms) -> {ok, Warnings} | {error, Errors, Warnings}

module(AbsForms, FileName) ->

{确定,警告}{错误,错误,警告}

module(AbsForms, FileName, CompileOptions) ->

{ok, Warnings} | {error, Errors, Warnings}

类型

检查模块中的所有表单是否有错误。它返回:

{ok,Warnings}

模块中没有错误。

{error,Errors,Warnings}

模块中有错误。

由于本模块只对编译器的维护人员感兴趣,并且为了避免在两处使用相同的描述,Options控件的警告只在compile(3)模块。

AbsForms来自一个通过eppErlang预处理器读取的文件的模块可以来自许多文件。这意味着任何对错误的引用都必须包含文件名,请参阅epp(3)模块或解析器(请参阅erl_parse(3)模块)。返回的错误和警告具有以下格式:

[{FileName2,[ErrorInfo]}]

错误和警告按表单中遇到的顺序列出。因此,一个文件中的错误可以在错误列表中分成不同的条目。

错误信息

ErrorInfo是标准ErrorInfo结构,从所有I/O模块返回。格式如下:

{ErrorLine, Module, ErrorDescriptor}

通过以下调用获得一个描述错误的字符串:

Module:format_error(ErrorDescriptor)

另见

epp(3)erl_parse(3)