Browse Source

Correct `clone_node`

gingerBill 3 years ago
parent
commit
2944969ca0
1 changed files with 4 additions and 3 deletions
  1. 4 3
      core/odin/ast/clone.odin

+ 4 - 3
core/odin/ast/clone.odin

@@ -68,12 +68,13 @@ clone_node :: proc(node: ^Node) -> ^Node {
 		return nil
 	}
 
-	size := size_of(Node)
+	size  := size_of(Node)
 	align := align_of(Node)
 	ti := reflect.union_variant_type_info(node.derived)
 	if ti != nil {
-		size = ti.size
-		align = ti.align
+		elem := ti.variant.(reflect.Type_Info_Pointer).elem
+		size  = elem.size
+		align = elem.align
 	}
 
 	#partial switch in node.derived {