Skip to content

Commit ac4befa

Browse files
authored
Merge pull request rust-lang#17 from Rust-zh/code-index
appendix/code-index.md translated
2 parents 232b65b + e0ffaa8 commit ac4befa

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

src-zh/SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
- [代码生成](./codegen.md)
173173
- [更新 LLVM](./codegen/updating-llvm.md)
174174
- [调试 LLVM](./codegen/debugging.md)
175-
- [性能剖析导向的优化](./profile-guided-optimization.md)
175+
- [性能剖析指导的优化](./profile-guided-optimization.md)
176176

177177
---
178178

src-zh/appendix/code-index.md

+53
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1+
<!--
12
# Appendix D: Code Index
3+
-->
24

5+
# 附录 D:代码索引
6+
7+
<!--
38
rustc has a lot of important data structures. This is an attempt to give some
49
guidance on where to learn more about some of the key data structures of the
510
compiler.
11+
-->
12+
13+
rustc 中有大量重要的数据结构。本附录列出了一些编译器中关键的数据结构,给出了了解其细节的途径。
614

15+
<!--
716
Item | Kind | Short description | Chapter | Declaration
817
----------------|----------|-----------------------------|--------------------|-------------------
918
`BodyId` | struct | One of four types of HIR node identifiers | [Identifiers in the HIR] | [src/librustc/hir/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.BodyId.html)
@@ -30,7 +39,36 @@ Item | Kind | Short description | Chapter |
3039
`TraitRef` | struct | The combination of a trait and its input types (e.g. `P0: Trait<P1...Pn>`) | [Trait Solving: Goals and Clauses], [Trait Solving: Lowering impls] | [src/librustc/ty/sty.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TraitRef.html)
3140
`Ty<'tcx>` | struct | This is the internal representation of a type used for type checking | [Type checking] | [src/librustc/ty/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/type.Ty.html)
3241
`TyCtxt<'cx, 'tcx, 'tcx>` | struct | The "typing context". This is the central data structure in the compiler. It is the context that you use to perform all manner of queries | [The `ty` modules] | [src/librustc/ty/context.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TyCtxt.html)
42+
-->
43+
44+
条目 | 种类 | 简述 | 章节 | 声明
45+
------|------|------|------|-----
46+
`BodyId` | struct | 四种 HIR 节点标识符类型之一 | [HIR 中的标识符] | [src/librustc/hir/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.BodyId.html)
47+
`Compiler` | struct | 表示编译器会话,可用于驱动编译。 | [rustc 驱动与接口] | [src/librustc_interface/interface.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/interface/struct.Compiler.html)
48+
`ast::Crate` | struct | 经解析的 crate 的语法层面的表示 | [解析器] | [src/librustc/hir/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.Crate.html)
49+
`hir::Crate` | struct | 更加抽象的,编译器友好的 crate 的 AST 形式 | [HIR] | [src/librustc/hir/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.Crate.html)
50+
`DefId` | struct | 四种 HIR 节点标识符类型之一 | [HIR 中的标识符] | [src/librustc/hir/def_id.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/def_id/struct.DefId.html)
51+
`DiagnosticBuilder` | struct | 用于构建编译器诊断,如错误或 lint 的结构体 | [触发诊断] | [src/librustc_errors/diagnostic_builder.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_errors/struct.DiagnosticBuilder.html)
52+
`DocContext` | struct | rustdoc 在收集 crate 的文档时所用到的状态容器 | [Rustdoc] | [src/librustdoc/core.rs](https://github.com/rust-lang/rust/blob/master/src/librustdoc/core.rs)
53+
`HirId` | struct | 四种 HIR 节点标识符类型之一 | [HIR 中的标识符] | [src/librustc/hir/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.HirId.html)
54+
`NodeId` | struct | 四种 HIR 节点标识符类型之一,正在逐步淘汰 | [HIR 中的标识符] | [src/libsyntax/ast.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.NodeId.html)
55+
`P` | struct | 被占有的不可变智能指针。对比来说,`&T` 未被占有,而 `Box<T>` 是不可变的 | 无 | [src/syntax/ptr.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ptr/struct.P.html)
56+
`ParamEnv` | struct | 泛型形参或 `Self` 的相关信息,在处理关联项或泛型项时使用 | [形参环境] | [src/librustc/ty/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.ParamEnv.html)
57+
`ParseSess` | struct | 此结构体包含有关解析器会话的信息 | [解析器] | [src/libsyntax/parse/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/parse/struct.ParseSess.html)
58+
`Query` | struct | 表示 `Compiler` 接口的查询结果,允许偷用、借用和返回编译器每趟的结果 | [rustc 驱动与接口] | [src/librustc_interface/queries.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/queries/struct.Query.html)
59+
`Rib` | struct | 表示名字的单个作用域 | [名字求解] | [src/librustc_resolve/lib.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_resolve/struct.Rib.html)
60+
`Session` | struct | 于编译回话关联的数据 | [解析器][rustc 驱动与接口] | [src/librustc/session/mod.html](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/session/struct.Session.html)
61+
`SourceFile` | struct | `SourceMap` 的部分。将 AST 节点映射到它们的单个源文件的源码。曾名为 FileMap | [解析器] | [src/libsyntax_pos/lib.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/source_map/struct.SourceFile.html)
62+
`SourceMap` | struct | 将 AST 节点映射到它们的源码。它由 `SourceFile` 组成。曾名为 CodeMap | [解析器] | [src/libsyntax/source_map.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/source_map/struct.SourceMap.html)
63+
`Span` | struct | 用户源码中的位置,主要用于错误报告 | [触发诊断] | [src/libsyntax_pos/span_encoding.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax_pos/struct.Span.html)
64+
`StringReader` | struct | 解析过程中使用的词法分析器。它从待编译的原始源码中读入字符,产生一系列词法标记以供解析器使用 | [解析器] | [src/libsyntax/parse/lexer/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/parse/lexer/struct.StringReader.html)
65+
`syntax::token_stream::TokenStream` | struct | 抽象的词法标记序列,被组织为 `TokenTree` | [解析器][宏展开] | [src/libsyntax/tokenstream.rs](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/tokenstream/struct.TokenStream.html)
66+
`TraitDef` | struct | 此结构体包含特质的定义及其类型信息 | [`ty` 模块] | [src/librustc/ty/trait_def.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/trait_def/struct.TraitDef.html)
67+
`TraitRef` | struct | 特质及其输入类型的组合(例如 `P0: Trait<P1...Pn>`) | [特质求解:目标与子句][特质求解:底层实现] | [src/librustc/ty/sty.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TraitRef.html)
68+
`Ty<'tcx>` | struct | 类型的内部表示,用于类型检查 | [类型检查] | [src/librustc/ty/mod.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/type.Ty.html)
69+
`TyCtxt<'cx, 'tcx, 'tcx>` | struct | 「定型上下文(typing context)」。它是编译器中的核心数据结构。它是用于执行各种查询的上下文 | [`ty` 模块] | [src/librustc/ty/context.rs](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TyCtxt.html)
3370

71+
<!--
3472
[The HIR]: ../hir.html
3573
[Identifiers in the HIR]: ../hir.html#hir-id
3674
[The parser]: ../the-parser.html
@@ -44,3 +82,18 @@ Item | Kind | Short description | Chapter |
4482
[Parameter Environment]: ../param_env.html
4583
[Trait Solving: Goals and Clauses]: ../traits/goals-and-clauses.html#domain-goals
4684
[Trait Solving: Lowering impls]: ../traits/lowering-rules.html#lowering-impls
85+
-->
86+
87+
[HIR]: ../hir.html
88+
[HIR 中的标识符]: ../hir.html#hir-id
89+
[解析器]: ../the-parser.html
90+
[rustc 驱动与接口]: ../rustc-driver.html
91+
[类型检查]: ../type-checking.html
92+
[`ty` 模块]: ../ty.html
93+
[Rustdoc]: ../rustdoc.html
94+
[触发诊断]: ../diagnostics.html
95+
[宏展开]: ../macro-expansion.html
96+
[名字求解]: ../name-resolution.html
97+
[形参环境]: ../param_env.html
98+
[特质求解:目标与子句]: ../traits/goals-and-clauses.html#domain-goals
99+
[特质求解:底层实现]: ../traits/lowering-rules.html#lowering-impls

0 commit comments

Comments
 (0)