You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/test/typecheck/README.md

28 lines
1.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# OpenIM Typecheck
OpenIM Typecheck 为所有 Go 构建平台进行跨平台源代码类型检查。
## 优点
- **速度**OpenIM 完整编译大约需要 3 分钟,而使用 Typecheck 只需数秒。
- **资源消耗**:与需要 >40GB 的 RAM 不同Typecheck 只需 <8GB RAM
## 实现
OpenIM Typecheck 使用 Go 内置的解析和类型检查库 (`go/parser` `go/types`)。然而,这些库并不是 go 编译器所使用的。偶尔会出现不匹配的情况,但总的来说,它们是相当接近的。
## 错误处理
如果错误不会阻止构建,可以忽略。
**`go/types` 报告的错误,但 `go build` 不会**
- **真正的错误**(根据规范):
- 应尽量修复。如果无法修复或正在进行中(例如,已被外部引用的代码),则可以忽略。
- 例如:闭包中的未使用变量
- **不真实的错误**
- 应忽略并在适当的情况下向上游报告。
- 例如:staging generated 类型之间的类型检查不匹配
**`go build` 报告的错误,但我们不会**
- CGo 错误,包括语法和链接器错误。