quick sort

This commit is contained in:
agra
2026-02-10 18:58:04 +02:00
parent a6f0276fa5
commit 3fde080092
8 changed files with 326 additions and 30 deletions

View File

@@ -224,6 +224,13 @@ pub const Analyzer = struct {
const elem_name = elem_type.displayName(self.allocator) catch return .void_type;
return .{ .array_type = .{ .element_name = elem_name, .length = length } };
}
// Slice type: []T
if (tn.data == .slice_type_expr) {
const ste = tn.data.slice_type_expr;
const elem_type = self.resolveTypeNode(ste.element_type);
const elem_name = elem_type.displayName(self.allocator) catch return .void_type;
return .{ .slice_type = .{ .element_name = elem_name } };
}
// Parameterized type: Vector(N, T) or generic struct
if (tn.data == .parameterized_type_expr) {
// For now, skip generic instantiation — just return void_type
@@ -406,7 +413,7 @@ pub const Analyzer = struct {
try self.analyzeNode(val);
}
},
.enum_decl, .struct_decl, .union_decl, .array_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, .insert_expr => {},
.namespace_decl => |ns| {
try self.pushScope();
for (ns.decls) |d| {
@@ -630,6 +637,7 @@ pub const Analyzer = struct {
.builtin_expr,
.import_decl,
.array_type_expr,
.slice_type_expr,
.array_literal,
.parameterized_type_expr,
.index_expr,
@@ -876,6 +884,7 @@ pub fn findNodeAtOffset(node: *Node, offset: u32) ?*Node {
.union_decl,
.import_decl,
.array_type_expr,
.slice_type_expr,
.array_literal,
.parameterized_type_expr,
.index_expr,