Commit 5e81b048a0

Ryan Liptak <squeek502@hotmail.com>
2021-02-01 18:11:06
docs: Clarify that @field can work on declarations
1 parent 1517ed0
Changed files (1)
doc/langref.html.in
@@ -7533,19 +7533,21 @@ export fn @"A function name that is a complete sentence."() void {}
 
       {#header_open|@field#}
       <pre>{#syntax#}@field(lhs: anytype, comptime field_name: []const u8) (field){#endsyntax#}</pre>
-      <p>Performs field access by a compile-time string.
+      <p>Performs field access by a compile-time string. Works on both fields and declarations.
       </p>
        {#code_begin|test#}
 const std = @import("std");
 
 const Point = struct {
     x: u32,
-    y: u32
+    y: u32,
+
+    pub var z: u32 = 1;
 };
 
 test "field access by string" {
     const expect = std.testing.expect;
-    var p = Point {.x = 0, .y = 0};
+    var p = Point{ .x = 0, .y = 0 };
 
     @field(p, "x") = 4;
     @field(p, "y") = @field(p, "x") + 1;
@@ -7553,6 +7555,15 @@ test "field access by string" {
     expect(@field(p, "x") == 4);
     expect(@field(p, "y") == 5);
 }
+
+test "decl access by string" {
+    const expect = std.testing.expect;
+
+    expect(@field(Point, "z") == 1);
+
+    @field(Point, "z") = 2;
+    expect(@field(Point, "z") == 2);
+}
       {#code_end#}
 
       {#header_close#}