authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-29 17:39:26-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-29 19:09:58-04:00
logb7a82288adae12ed52abafbc4e5a9ab391a1f09b
treeb630fad1656d800ce89b52675df61bbf37f50f1e
parent9a7cf73b3b4fd27f5f251143dd0b50ea90ed338f
signaturelock-open Commit is signed but in an unrecognized format.

change `use` to `usingnamespace`

See #2014 `use` syntax is still accepted for now. `zig fmt` automatically updates code. After a release cycle the old syntax will be removed.

9 files changed, 28 insertions(+), 14 deletions(-)

doc/docgen.zig+1-1
...@@ -788,7 +788,7 @@ fn tokenizeAndPrintRaw(docgen_tokenizer: *Tokenizer, out: var, source_token: Tok...@@ -788,7 +788,7 @@ fn tokenizeAndPrintRaw(docgen_tokenizer: *Tokenizer, out: var, source_token: Tok
788 std.zig.Token.Id.Keyword_try,788 std.zig.Token.Id.Keyword_try,
789 std.zig.Token.Id.Keyword_union,789 std.zig.Token.Id.Keyword_union,
790 std.zig.Token.Id.Keyword_unreachable,790 std.zig.Token.Id.Keyword_unreachable,
791 std.zig.Token.Id.Keyword_use,791 std.zig.Token.Id.Keyword_usingnamespace,
792 std.zig.Token.Id.Keyword_var,792 std.zig.Token.Id.Keyword_var,
793 std.zig.Token.Id.Keyword_volatile,793 std.zig.Token.Id.Keyword_volatile,
794 std.zig.Token.Id.Keyword_allowzero,794 std.zig.Token.Id.Keyword_allowzero,
doc/langref.html.in+2-2
...@@ -9918,7 +9918,7 @@ KEYWORD_try &lt;- 'try' end_of_word...@@ -9918,7 +9918,7 @@ KEYWORD_try &lt;- 'try' end_of_word
9918KEYWORD_undefined &lt;- 'undefined' end_of_word9918KEYWORD_undefined &lt;- 'undefined' end_of_word
9919KEYWORD_union &lt;- 'union' end_of_word9919KEYWORD_union &lt;- 'union' end_of_word
9920KEYWORD_unreachable &lt;- 'unreachable' end_of_word9920KEYWORD_unreachable &lt;- 'unreachable' end_of_word
9921KEYWORD_use &lt;- 'use' end_of_word9921KEYWORD_usingnamespace &lt;- 'usingnamespace' end_of_word
9922KEYWORD_var &lt;- 'var' end_of_word9922KEYWORD_var &lt;- 'var' end_of_word
9923KEYWORD_volatile &lt;- 'volatile' end_of_word9923KEYWORD_volatile &lt;- 'volatile' end_of_word
9924KEYWORD_while &lt;- 'while' end_of_word9924KEYWORD_while &lt;- 'while' end_of_word
...@@ -9935,7 +9935,7 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_anyerror...@@ -9935,7 +9935,7 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_anyerror
9935 / KEYWORD_stdcallcc / KEYWORD_struct / KEYWORD_suspend9935 / KEYWORD_stdcallcc / KEYWORD_struct / KEYWORD_suspend
9936 / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try9936 / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try
9937 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable9937 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable
9938 / KEYWORD_use / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre>9938 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre>
9939 {#header_close#}9939 {#header_close#}
9940 {#header_open|Zen#}9940 {#header_open|Zen#}
9941 <ul>9941 <ul>
src/parser.cpp+1-1
...@@ -668,7 +668,7 @@ static AstNode *ast_parse_top_level_decl(ParseContext *pc, VisibMod visib_mod) {...@@ -668,7 +668,7 @@ static AstNode *ast_parse_top_level_decl(ParseContext *pc, VisibMod visib_mod) {
668 return res;668 return res;
669 }669 }
670670
671 Token *use = eat_token_if(pc, TokenIdKeywordUse);671 Token *use = eat_token_if(pc, TokenIdKeywordUsingNamespace);
672 if (use != nullptr) {672 if (use != nullptr) {
673 AstNode *expr = ast_expect(pc, ast_parse_expr);673 AstNode *expr = ast_expect(pc, ast_parse_expr);
674 expect_token(pc, TokenIdSemicolon);674 expect_token(pc, TokenIdSemicolon);
src/tokenizer.cpp+3-2
...@@ -153,7 +153,8 @@ static const struct ZigKeyword zig_keywords[] = {...@@ -153,7 +153,8 @@ static const struct ZigKeyword zig_keywords[] = {
153 {"undefined", TokenIdKeywordUndefined},153 {"undefined", TokenIdKeywordUndefined},
154 {"union", TokenIdKeywordUnion},154 {"union", TokenIdKeywordUnion},
155 {"unreachable", TokenIdKeywordUnreachable},155 {"unreachable", TokenIdKeywordUnreachable},
156 {"use", TokenIdKeywordUse},156 {"use", TokenIdKeywordUsingNamespace},
157 {"usingnamespace", TokenIdKeywordUsingNamespace},
157 {"var", TokenIdKeywordVar},158 {"var", TokenIdKeywordVar},
158 {"volatile", TokenIdKeywordVolatile},159 {"volatile", TokenIdKeywordVolatile},
159 {"while", TokenIdKeywordWhile},160 {"while", TokenIdKeywordWhile},
...@@ -1546,7 +1547,7 @@ const char * token_name(TokenId id) {...@@ -1546,7 +1547,7 @@ const char * token_name(TokenId id) {
1546 case TokenIdKeywordUndefined: return "undefined";1547 case TokenIdKeywordUndefined: return "undefined";
1547 case TokenIdKeywordUnion: return "union";1548 case TokenIdKeywordUnion: return "union";
1548 case TokenIdKeywordUnreachable: return "unreachable";1549 case TokenIdKeywordUnreachable: return "unreachable";
1549 case TokenIdKeywordUse: return "use";1550 case TokenIdKeywordUsingNamespace: return "usingnamespace";
1550 case TokenIdKeywordVar: return "var";1551 case TokenIdKeywordVar: return "var";
1551 case TokenIdKeywordVolatile: return "volatile";1552 case TokenIdKeywordVolatile: return "volatile";
1552 case TokenIdKeywordWhile: return "while";1553 case TokenIdKeywordWhile: return "while";
src/tokenizer.hpp+1-1
...@@ -96,7 +96,7 @@ enum TokenId {...@@ -96,7 +96,7 @@ enum TokenId {
96 TokenIdKeywordUndefined,96 TokenIdKeywordUndefined,
97 TokenIdKeywordUnion,97 TokenIdKeywordUnion,
98 TokenIdKeywordUnreachable,98 TokenIdKeywordUnreachable,
99 TokenIdKeywordUse,99 TokenIdKeywordUsingNamespace,
100 TokenIdKeywordVar,100 TokenIdKeywordVar,
101 TokenIdKeywordVolatile,101 TokenIdKeywordVolatile,
102 TokenIdKeywordWhile,102 TokenIdKeywordWhile,
std/zig/parse.zig+2-2
...@@ -203,7 +203,7 @@ fn parseTopLevelComptime(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*...@@ -203,7 +203,7 @@ fn parseTopLevelComptime(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*
203/// TopLevelDecl203/// TopLevelDecl
204/// <- (KEYWORD_export / KEYWORD_extern STRINGLITERAL? / KEYWORD_inline)? FnProto (SEMICOLON / Block)204/// <- (KEYWORD_export / KEYWORD_extern STRINGLITERAL? / KEYWORD_inline)? FnProto (SEMICOLON / Block)
205/// / (KEYWORD_export / KEYWORD_extern STRINGLITERAL?)? KEYWORD_threadlocal? VarDecl205/// / (KEYWORD_export / KEYWORD_extern STRINGLITERAL?)? KEYWORD_threadlocal? VarDecl
206/// / KEYWORD_use Expr SEMICOLON206/// / KEYWORD_usingnamespace Expr SEMICOLON
207fn parseTopLevelDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {207fn parseTopLevelDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {
208 var lib_name: ?*Node = null;208 var lib_name: ?*Node = null;
209 const extern_export_inline_token = blk: {209 const extern_export_inline_token = blk: {
...@@ -2809,7 +2809,7 @@ fn parseTry(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {...@@ -2809,7 +2809,7 @@ fn parseTry(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {
2809}2809}
28102810
2811fn parseUse(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {2811fn parseUse(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node {
2812 const token = eatToken(it, .Keyword_use) orelse return null;2812 const token = eatToken(it, .Keyword_usingnamespace) orelse return null;
2813 const node = try arena.create(Node.Use);2813 const node = try arena.create(Node.Use);
2814 node.* = Node.Use{2814 node.* = Node.Use{
2815 .base = Node{ .id = .Use },2815 .base = Node{ .id = .Use },
std/zig/parser_test.zig+12-2
...@@ -1,3 +1,13 @@...@@ -1,3 +1,13 @@
1// TODO remove `use` keyword eventually
2test "zig fmt: change use to usingnamespace" {
3 try testTransform(
4 \\use @import("std");
5 ,
6 \\usingnamespace @import("std");
7 \\
8 );
9}
10
1test "zig fmt: allowzero pointer" {11test "zig fmt: allowzero pointer" {
2 try testCanonical(12 try testCanonical(
3 \\const T = [*]allowzero const u8;13 \\const T = [*]allowzero const u8;
...@@ -2090,8 +2100,8 @@ test "zig fmt: Block after if" {...@@ -2090,8 +2100,8 @@ test "zig fmt: Block after if" {
20902100
2091test "zig fmt: use" {2101test "zig fmt: use" {
2092 try testCanonical(2102 try testCanonical(
2093 \\use @import("std");2103 \\usingnamespace @import("std");
2094 \\pub use @import("std");2104 \\pub usingnamespace @import("std");
2095 \\2105 \\
2096 );2106 );
2097}2107}
std/zig/render.zig+3-1
...@@ -168,7 +168,9 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i...@@ -168,7 +168,9 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
168 if (use_decl.visib_token) |visib_token| {168 if (use_decl.visib_token) |visib_token| {
169 try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub169 try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub
170 }170 }
171 try renderToken(tree, stream, use_decl.use_token, indent, start_col, Space.Space); // use171 // TODO after depracating use, go back to this:
172 //try renderToken(tree, stream, use_decl.use_token, indent, start_col, Space.Space); // usingnamespace
173 try stream.write("usingnamespace ");
172 try renderExpression(allocator, stream, tree, indent, start_col, use_decl.expr, Space.None);174 try renderExpression(allocator, stream, tree, indent, start_col, use_decl.expr, Space.None);
173 try renderToken(tree, stream, use_decl.semicolon_token, indent, start_col, Space.Newline); // ;175 try renderToken(tree, stream, use_decl.semicolon_token, indent, start_col, Space.Newline); // ;
174 },176 },
std/zig/tokenizer.zig+3-2
...@@ -59,7 +59,8 @@ pub const Token = struct {...@@ -59,7 +59,8 @@ pub const Token = struct {
59 Keyword{ .bytes = "undefined", .id = Id.Keyword_undefined },59 Keyword{ .bytes = "undefined", .id = Id.Keyword_undefined },
60 Keyword{ .bytes = "union", .id = Id.Keyword_union },60 Keyword{ .bytes = "union", .id = Id.Keyword_union },
61 Keyword{ .bytes = "unreachable", .id = Id.Keyword_unreachable },61 Keyword{ .bytes = "unreachable", .id = Id.Keyword_unreachable },
62 Keyword{ .bytes = "use", .id = Id.Keyword_use },62 Keyword{ .bytes = "use", .id = Id.Keyword_usingnamespace },
63 Keyword{ .bytes = "usingnamespace", .id = Id.Keyword_usingnamespace },
63 Keyword{ .bytes = "var", .id = Id.Keyword_var },64 Keyword{ .bytes = "var", .id = Id.Keyword_var },
64 Keyword{ .bytes = "volatile", .id = Id.Keyword_volatile },65 Keyword{ .bytes = "volatile", .id = Id.Keyword_volatile },
65 Keyword{ .bytes = "while", .id = Id.Keyword_while },66 Keyword{ .bytes = "while", .id = Id.Keyword_while },
...@@ -190,7 +191,7 @@ pub const Token = struct {...@@ -190,7 +191,7 @@ pub const Token = struct {
190 Keyword_undefined,191 Keyword_undefined,
191 Keyword_union,192 Keyword_union,
192 Keyword_unreachable,193 Keyword_unreachable,
193 Keyword_use,194 Keyword_usingnamespace,
194 Keyword_var,195 Keyword_var,
195 Keyword_volatile,196 Keyword_volatile,
196 Keyword_while,197 Keyword_while,