aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge pull request #3853 from matklad/cfAleksey Kladov2020-04-064-8/+8
|\ \ | | | | | | Make control token modifier less ambiguous
| * | Make control token modifier less ambiguousAleksey Kladov2020-04-064-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | In textmate, keyword.control is used for all kinds of things; in fact, the default scope mapping for keyword is keyword.control! So let's add a less ambiguous controlFlow modifier See Microsoft/vscode#94367
* | | Merge #3843bors[bot]2020-04-061-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3843: Remove rustc_lexer dependency in favour of rustc-ap-rustc_lexer r=est31 a=est31 The latter is auto-published on a regular schedule (Right now weekly). See also https://github.com/alexcrichton/rustc-auto-publish Co-authored-by: est31 <[email protected]>
| * | | Remove rustc_lexer dependency in favour of rustc-ap-rustc_lexerest312020-04-061-1/+1
| | | | | | | | | | | | | | | | The latter is auto-published on a regular schedule (Right now weekly).
* | | | Merge #3829bors[bot]2020-04-061-12/+110
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3829: Adds to SSR match for semantically equivalent call and method call r=matklad a=mikhail-m1 #3186 maybe I've missed some corner cases, but it works in general Co-authored-by: Mikhail Modin <[email protected]>
| * | | | Adds to SSR match for semantically equivalent call and method callMikhail Modin2020-04-021-12/+110
| | | | |
* | | | | Merge #3744bors[bot]2020-04-0611-136/+294
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3744: Upgrade Chalk r=matklad a=flodiebold Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * | | | Upgrade Chalk againFlorian Diebold2020-04-0511-109/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The big change here is counting binders, not variables (https://github.com/rust-lang/chalk/pull/360). We have to adapt to the same scheme for our `Ty::Bound`. It's mostly fine though, even makes some things more clear.
| * | | | Upgrade ChalkFlorian Diebold2020-04-053-30/+105
| | | | |
* | | | | Hide unit fn return typesLaurențiu Nicola2020-04-055-20/+28
|/ / / /
* | | | Fix inference of function pointer return typesLaurențiu Nicola2020-04-052-1/+31
| | | |
* | | | Merge #3848bors[bot]2020-04-041-3/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3848: Remove unused dependencies r=kjeremy a=est31 Found by cargo-udeps Co-authored-by: est31 <[email protected]>
| * | | | Remove unused dependenciesest312020-04-041-3/+0
| | |/ / | |/| |
* | | | Remove explicit generic type parameterveetaha2020-04-041-1/+1
| | | |
* | | | Simplify configveetaha2020-04-041-9/+8
|/ / /
* | | Add parens for enumsAleksey Kladov2020-04-034-46/+175
| | |
* | | Generalize call parenthesis insertionAleksey Kladov2020-04-031-27/+46
| | |
* | | Remove the second code-path for completing names in patternsAleksey Kladov2020-04-034-70/+31
| | |
* | | Macro patterns are not confused with expressions.Aleksey Kladov2020-04-036-17/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We treat macro calls as expressions (there's appropriate Into impl), which causes problem if there's expresison and non-expression macro in the same node (like in the match arm). We fix this problem by nesting macor patterns into another node (the same way we nest path into PathExpr or PathPat). Ideally, we probably should add a similar nesting for macro expressions, but that needs some careful thinking about macros in blocks: `{ am_i_expression!() }`.
* | | CleanupsAleksey Kladov2020-04-032-14/+13
| | |
* | | Add doc comment on main.rsEdwin Cheng2020-04-031-0/+2
| | |
* | | Introduce ra_proc_macro_srvEdwin Cheng2020-04-034-2/+99
| | |
* | | Merge #3746bors[bot]2020-04-034-0/+842
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3746: Add create_function assist r=flodiebold a=TimoFreiberg The function part of #3639, creating methods will come later - [X] Function arguments - [X] Function call arguments - [x] Method call arguments - [x] Literal arguments - [x] Variable reference arguments - [X] Migrate to `ast::make` API Done, but there are some ugly spots. Issues to handle in another PR: - function reference arguments: Their type isn't printed properly right now. The "insert explicit type" assist has the same issue and this is probably a relatively rare usecase. - generating proper names for all kinds of argument expressions (if, loop, ...?) Without this, it's totally possible for the assist to generate invalid argument names. I think the assist it's already helpful enough to be shipped as it is, at least for me the main usecase involves passing in named references. Besides, the Rust tooling ecosystem is immature enough that some janky behaviour in a new assist probably won't scare anyone off. - select the generated placeholder body so it's a bit easier to overwrite it - create method (`self.foo<|>(..)` or `some_foo.foo<|>(..)`) instead of create_function. The main difference would be finding (or creating) the impl block and inserting the `self` argument correctly - more specific default arg names for literals. So far, every generated argument whose name can't be taken from the call site is called `arg` (with a number suffix if necessary). - creating functions in another module of the same crate. E.g. when typing `some_mod::foo<|>(...)` when in `lib.rs`, I'd want to have `foo` generated in `some_mod.rs` and jump there. Issues: the mod could exist in `some_mod.rs`, in `lib.rs` as `mod some_mod`, or inside another mod but be imported via `use other_mod::some_mod`. - refer to arguments of the generated function with a qualified path if the types aren't imported yet (alternative: run autoimport. i think starting with a qualified path is cleaner and there's already an assist to replace a qualified path with an import and an unqualified path) - add type arguments of the arguments to the generated function - Autocomplete functions with information from unresolved calls (see https://github.com/rust-analyzer/rust-analyzer/pull/3746#issuecomment-605281323) Issues: see https://github.com/rust-analyzer/rust-analyzer/pull/3746#issuecomment-605282542. The unresolved call could be anywhere. But just offering this autocompletion for unresolved calls in the same module would already be cool. Co-authored-by: Timo Freiberg <[email protected]>
| * | | Use ast::make API in add_function assistTimo Freiberg2020-04-012-67/+73
| | | |
| * | | Add create_function assistTimo Freiberg2020-04-013-0/+836
| | | |
* | | | Merge #3814bors[bot]2020-04-034-1/+230
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3814: Add impl From for enum variant assist r=flodiebold a=mattyhall Basically adds a From impl for tuple enum variants with one field. It was recommended to me on the zulip to maybe try using the trait solver, but I had trouble with that as, although it could resolve the trait impl, it couldn't resolve the variable unambiguously in real use. I'm also unsure of how it would work if there were already multiple From impls to resolve - I can't see a way we could get more than one solution to my query. Fixes #3766 Co-authored-by: Matthew Hall <[email protected]>
| * | | Cleanup checking for existing impls in impl From assistMatthew Hall2020-04-022-48/+24
| | | | | | | | | | | | | | | | | | | | Use the trait solver to check if there's an existing implementation of From<type_in_enum_variant> for the enum.
| * | | Add impl From for enum variant assistMatthew Hall2020-04-014-2/+255
| | | | | | | | | | | | | | | | | | | | | | | | Basically adds a From impl for tuple enum variants with one field. Added to cover the fairly common case of implementing your own Error that can be created from another one, although other use cases exist.
* | | | Apply cargo xtask formatveetaha2020-04-021-1/+0
| | | |
* | | | Migrate to privacy as per review commetsveetaha2020-04-026-15/+25
| | | |
* | | | Less mutabilityveetaha2020-04-021-19/+23
| | | |
* | | | Migrate to iters some moreveetaha2020-04-021-18/+11
| | | |
* | | | Migrate to iteratorsveetaha2020-04-021-15/+3
| | | |
* | | | Simpify workspace handlingveetaha2020-04-027-83/+63
| | | |
* | | | Don't clone where you can copyveetaha2020-04-021-1/+1
| | | |
* | | | Merge #3811bors[bot]2020-04-025-3/+104
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3811: Add inference for literal and range patterns r=kjeremy a=flodiebold (cc @JoshMcguigan ) Co-authored-by: Florian Diebold <[email protected]>
| * | | | Add inference for literal and range patternsFlorian Diebold2020-04-015-3/+104
| | |/ / | |/| |
* | | | Allow fully overriding check and fmt commandsAleksey Kladov2020-04-021-2/+19
| |_|/ |/| |
* | | Remove vscode_lldb settingAleksey Kladov2020-04-022-20/+14
| | |
* | | SiplifyAleksey Kladov2020-04-022-7/+5
| | |
* | | Lean onto default implementation of configsAleksey Kladov2020-04-023-11/+16
| | |
* | | New config in package.jsonAleksey Kladov2020-04-021-26/+41
| | |
* | | Reorder fieldsAleksey Kladov2020-04-021-44/+47
| | |
* | | Merge #3820bors[bot]2020-04-024-87/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3820: Remove old syntax highlighting r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Remove old syntax highlightingAleksey Kladov2020-04-024-87/+3
| |/ /
* / / Unique package by name and version.o0Ignition0o2020-04-021-4/+5
|/ / | | | | | | | | This commit is a fixup of a bug I introduced by using a PackageId to refer to a crate when its name conflicts with a dependency. It turns out the package id currently is `name version path` while cargo expects `name:version` as argument.
* | Merge #3806bors[bot]2020-04-012-3/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3806: lower bool literal value r=flodiebold a=JoshMcguigan Following up on #3805, this PR adds the literal value to `ast::LiteralKind` so when we lower we can use the actual value from the source code rather than the default value for the type. Ultimately I plan to use this for exhaustiveness checking in #3706. I didn't include this in the previous PR because I wasn't sure if it made sense to add this information to `ast::LiteralKind` or provide some other mechanism to get this from `ast::Literal`. For now I've only implemented this for boolean literals, but I think it could be easily extended to other types. A possible exception to this are string literals, since we may not want to clone around an owned string to hold onto in `ast::LiteralKind`, and it'd be nice to avoid adding a generic lifetime as well. Perhaps we won't ever care about the actual value of a string literal? Co-authored-by: Josh Mcguigan <[email protected]>
| * | lower bool literal with the value from source code rather than default bool ↵Josh Mcguigan2020-04-012-3/+4
| | | | | | | | | | | | value
* | | Fix pointer syntaxAleksey Kladov2020-04-012-30/+36
| | |
* | | Centralize defaultsAleksey Kladov2020-04-012-18/+6
| | |