stage2 大量优化代码使其自举编译时间大幅缩短

This commit is contained in:
zzy committed 2026-09-20 09:33:20 +08:00
1 parent e02b0c633a
commit 846f441e3a
38 files changed
+2418 -835

No files matched your search

+3 -7
View File
@@ -7,7 +7,7 @@
type .{ .Error } = @import("utils/error.spl");
type .{ .Vec } = @import("utils/vec.spl");
type .{ .Map } = @import("utils/map.spl");
type .{ .Map, .hash_kind_view } = @import("utils/map.spl");
type .{ .ByteView } = @import("utils/byte_view.spl");
type .{ .hash_view, .eq_view } = @import("utils/hash.spl");
@@ -43,7 +43,7 @@ type ScopeResult = enum {
fn new_map(): Map {
ret Map.new(@sizeof(ByteView), @alignof(ByteView), @sizeof(Symbol), @alignof(Symbol),
hash_view, eq_view);
hash_kind_view());
}
fn new(): ScopeResult {
@@ -81,11 +81,7 @@ fn drop(self: *Scope) {
// id 0 与越界返回 null。
fn node(self: *Scope, id: usize): *ScopeNode {
if id == 0 || id >= self.scopes.len { ret null; }
match Vec.get(&self.scopes, id) {
.Ok(ptr) => { ret ptr as *ScopeNode; },
.Err(error) => { ret null; },
}
ret null;
ret (self.scopes.data as *ScopeNode) + id;
}
// 新作用域 parent = 当前作用域;不自动切换 current(调用方负责,见 sema)。