aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1192bors[bot]2019-04-225-15/+202
|\ | | | | | | | | | | | | | | | | | | | | | | 1192: Add mbe expand limit and poision macro set r=maklad a=edwin0cheng As discussed in Zulip, this PR add a token expansion limit in `parse_macro` and a "poison" macro set in `CrateDefMap` to prevent stack over flow and limit a mbe macro size. Note: Right now it only handle a poison macro in a single crate, such that if other crate try to call that macro, the whole process will do again until it became poisoned in that crate. Co-authored-by: Edwin Cheng <[email protected]>
| * Use map, sum in Subtree::coount instead of foldEdwin Cheng2019-04-221-4/+8
| |
| * Change macro stack monitor test to func ptr basedEdwin Cheng2019-04-221-40/+25
| |
| * Add mbe expand limit and poision macro setEdwin Cheng2019-04-225-18/+216
|/
* Merge #1189bors[bot]2019-04-215-34/+194
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1189: Fix #1178 r=matklad a=edwin0cheng This PR improves / fixes mbe : 1. Fixed a offest bug in `SourceTreeWalker` 2. Handle `*+` matcher properly 3. Add missing separator in rhs macro expansion. 4. Fixed bug in single token with empty delimiter subtree case. It is because the current `mbe_expander` will create an delimiter subtree for each expansion. But in `tt` case, all puncts expansion will be incorrect because of it. 5. Fixed lifetime bug 6. Add more information on parse_macro fail 7. Add tests for above. Co-authored-by: Edwin Cheng <[email protected]>
| * Add testsEdwin Cheng2019-04-211-2/+87
| |
| * Fix offset bug in SourceWalkerEdwin Cheng2019-04-211-6/+7
| |
| * Handle `*+` case and single token caseEdwin Cheng2019-04-211-5/+56
| |
| * fix mbe_parser rhs colon parsingEdwin Cheng2019-04-211-10/+11
| |
| * Add more information on parse_macro failEdwin Cheng2019-04-211-10/+27
| |
| * Fix lifetime in tt to syntax node conversionEdwin Cheng2019-04-211-1/+6
|/
* Merge #1186bors[bot]2019-04-211-1/+0
|\ | | | | | | | | | | | | | | 1186: remove appveyor r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * remove appveyorAleksey Kladov2019-04-211-1/+0
|/
* Merge #1182bors[bot]2019-04-213-5/+63
|\ | | | | | | | | | | | | | | | | | | 1182: Add HIR for where clauses & ignore impls with where clauses in trait resolution r=matklad a=flodiebold This prevents any `impl<T> Trait for T where ...` from being treated as a blanket impl while we don't handle where clauses yet. Co-authored-by: Florian Diebold <[email protected]>
| * Add HIR for where clauses & ignore impls with where clauses in trait resolutionFlorian Diebold2019-04-213-5/+63
|/ | | | | This prevents any `impl<T> Trait for T where ...` from being treated as a blanket impl while we don't handle where clauses yet.
* Merge #1181bors[bot]2019-04-213-7/+6
|\ | | | | | | | | | | | | | | 1181: :arrow_up: lsp r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: lspAleksey Kladov2019-04-213-7/+6
|/
* Merge #1175bors[bot]2019-04-215-50/+154
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 1175: Fix bugs and add error log about macro expansion r=matklad a=edwin0cheng This PR fixed / add following things: * Add a fused count which stop recursion of macro expansion in name resolution. * Add some logs when macro expansion fails * Add `$crate` meta variable support in mbe, which create a `$crate` ident token in token tree. * Fixed matching a `$REPEAT` pattern inside a subtree, e.g. `(fn $name:ident {$($i:ident)*} ) => {...}` * Remove composite-able punct token in syntax node to token conversion. Co-authored-by: Edwin Cheng <[email protected]>
| * Fix bugsEdwin Cheng2019-04-205-50/+154
| |
* | fix docsAleksey Kladov2019-04-212-7/+8
| |
* | Merge #1179bors[bot]2019-04-2113-63/+89
|\ \ | | | | | | | | | | | | | | | | | | | | | 1179: switch to official extend selection API r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | switch to official extend selection APIAleksey Kladov2019-04-2113-63/+89
|/ /
* | Merge #1177bors[bot]2019-04-212-1442/+185
|\ \ | | | | | | | | | | | | | | | | | | | | | 1177: :arrow_up: code r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: codeAleksey Kladov2019-04-212-1442/+185
|/ /
* | Merge #1176bors[bot]2019-04-201-0/+22
|\ \ | | | | | | | | | | | | | | | | | | | | | 1176: Add a simple test for str method completion r=flodiebold a=flodiebold Somehow I forgot that we should add a test for this in #1154 until after it was already merging. So I'll just add one now :) Co-authored-by: Florian Diebold <[email protected]>
| * | Add a simple test for str method completionFlorian Diebold2019-04-201-0/+22
|/ /
* | Merge #1154bors[bot]2019-04-2011-19/+174
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1154: Initial support for lang items (and str completion) r=flodiebold a=marcogroppo This PR adds partial support for lang items. For now, the only supported lang items are the ones that target an impl block. Lang items are now resolved during type inference - this means that `str` completion now works. Fixes #1139. (thanks Florian Diebold for the help!) Co-authored-by: Marco Groppo <[email protected]>
| * | lang_item_lookup is now a salsa query.Marco Groppo2019-04-193-32/+34
| | |
| * | New krate() method in Resolver.Marco Groppo2019-04-195-56/+46
| | | | | | | | | | | | Renamed Impl to ImplBlock.
| * | Initial support for lang items.Marco Groppo2019-04-1911-41/+204
| | |
* | | Merge #1174bors[bot]2019-04-206-55/+137
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 1174: improve cargo watch r=matklad a=vemoo - Add start and stop commands - Cleanup trypescript code to avoid definite assignment assertions (`!` after possibly undefined value) - Recover `rustc-watch` problem matcher because it's still useful, can be used with any command, for example `cargo test` Co-authored-by: Bernardo <[email protected]>
| * | update user docsBernardo2019-04-201-0/+8
| | |
| * | start cargo watch if not started interactivelyBernardo2019-04-193-3/+20
| | |
| * | recover rustc-watch problemMatchersBernardo2019-04-191-0/+12
| | |
| * | cargo watch start and stop commandsBernardo2019-04-195-55/+100
|/ /
* | Merge #1172bors[bot]2019-04-192-27/+31
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1172: Temporarily disable tt matcher r=edwin0cheng a=edwin0cheng Temporarily fix for #1170 by disable the `tt` matcher. The reason for that is normally a `$($tt:tt))* wildcard matcher will be added for recurisve macro. If we have any bugs in macro expansion, the macro will infinite expanding recursively. Let me add a fused system and add more test in later PR and then re-enable this one Co-authored-by: Edwin Cheng <[email protected]>
| * | Disable test_tt_xxEdwin Cheng2019-04-191-23/+23
| | |
| * | Disable tt matcherEdwin Cheng2019-04-191-4/+8
|/ /
* | Merge #1168bors[bot]2019-04-197-2/+227
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1168: Add all remaining mbe matchers r=matklad a=edwin0cheng This PR adds following mbe matchers: * block * meta * tt * literal * vis Co-authored-by: Edwin Cheng <[email protected]>
| * | Add back missing assertEdwin Cheng2019-04-191-2/+3
| | |
| * | Fix bug for ident to lifetimeEdwin Cheng2019-04-191-0/+7
| | |
| * | Add vis matcherEdwin Cheng2019-04-196-1/+33
| | |
| * | Add literal matcherEdwin Cheng2019-04-193-0/+35
| | |
| * | Add lifetime matcherEdwin Cheng2019-04-194-2/+25
| | |
| * | add tt matcherEdwin Cheng2019-04-192-0/+28
| | |
| * | add block matcherEdwin Cheng2019-04-196-0/+64
| | |
| * | Add block matcherEdwin Cheng2019-04-196-0/+35
| | |
* | | Merge #1167bors[bot]2019-04-191-0/+27
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1167: Added instructions for Sublime Text 3 setup r=matklad a=OtaK Hey all! I'm a Sublime Text 3 user and I wrote instructions to make `rust-analyzer` work with it. So far works flawlessly, barring the missing features, which is fine (and not the point of this PR). Great work <3 Thanks, Mathieu Co-authored-by: Mathieu Amiot <[email protected]>
| * | Added instructions for Sublime Text 3 setupMathieu Amiot2019-04-191-0/+27
|/ /
* | Merge #1148bors[bot]2019-04-198-20/+295
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1148: Add token_tree_to_xxx functions r=matklad a=edwin0cheng <del>As discus in PR #1147 , this PR added a `mbe::MacroKind` . Currently only 2 kind of macro are supported, `SourceFile` and `Block`.</del> Added following functions for `tt::TokenTree` and `ast::Node` conversion: * token_tree_to_expr * token_tree_to_pat * token_tree_to_ty * token_tree_to_macro_stmts * token_tree_to_macro_items And added two new syntax kind: * MACRO_ITEMS * MACRO_STMTS Co-authored-by: Edwin Cheng <[email protected]>