This commit is contained in:
agra
2026-02-10 21:03:56 +02:00
parent bba26ca0d7
commit ef14144d49
5 changed files with 168 additions and 5 deletions

View File

@@ -347,6 +347,13 @@ pub const Analyzer = struct {
}
return Type.s(32);
},
.slice_expr => |se| {
const obj_ty = self.inferExprType(se.object);
if (obj_ty == .string_type) return .string_type;
if (obj_ty.isArray()) return .{ .slice_type = .{ .element_name = obj_ty.array_type.element_name } };
if (obj_ty.isSlice()) return obj_ty;
return .void_type;
},
.while_expr => .void_type,
.for_expr => .void_type,
.spread_expr => .void_type,
@@ -413,7 +420,7 @@ pub const Analyzer = struct {
try self.analyzeNode(val);
}
},
.enum_decl, .struct_decl, .union_decl, .array_type_expr, .slice_type_expr, .array_literal, .parameterized_type_expr, .index_expr, .insert_expr => {},
.enum_decl, .struct_decl, .union_decl, .array_type_expr, .slice_type_expr, .array_literal, .parameterized_type_expr, .index_expr, .slice_expr, .insert_expr => {},
.namespace_decl => |ns| {
try self.pushScope();
for (ns.decls) |d| {
@@ -641,6 +648,7 @@ pub const Analyzer = struct {
.array_literal,
.parameterized_type_expr,
.index_expr,
.slice_expr,
=> {},
.namespace_decl => |ns| {
for (ns.decls) |d| {
@@ -673,6 +681,7 @@ pub const Analyzer = struct {
.union_literal,
.array_literal,
.index_expr,
.slice_expr,
.type_expr,
.insert_expr,
.while_expr,
@@ -888,6 +897,7 @@ pub fn findNodeAtOffset(node: *Node, offset: u32) ?*Node {
.array_literal,
.parameterized_type_expr,
.index_expr,
.slice_expr,
=> {},
.namespace_decl => |ns| {
for (ns.decls) |d| {