Changelog #36

Commit: e96bfd8
Release: 2020-08-03

Sponsors

New Features

  • We started the effort to share the parser between rust-analyzer and rustc. This will take a while to complete, and won’t give any new user-visible features until completion. As the first step, rust-analyzer now uses this grammar to generate syntax tree structure.

  • #5547 fold multiline parameter lists.

  • #5561: allow running more tests at once via the module runners:

    88724896 e85a7100 d133 11ea 99ee 689126679cbc
  • #5563 Check all targets for package-level tasks. When invoking "Select Runnable" with the caret on a runnable with a specific target (test, bench, binary), append the corresponding argument for the cargo check -p module runnable.

  • #5586 Support new sysroot layout on nightly.

Fixes

  • #5596 add checkOnSave.noDefaultFeatures and correct how we handle some cargo flags.

  • #5565 don’t mix non-path-based rules with path-based in Structural Search Replace.

  • #5554 fix Remove dbg assist to not remove meaningful parenthesis and semicolons.

  • #5567 wrap placeholder expansions in SSR in parenthesis when necessary.

  • #5513 when generating launch.json configurations, correctly handle multi-folder workspaces.

Internal Improvements

  • #5572 Switch to ungrammar for generating syntax trees.

  • #5574 Replace rand with oorandom.

  • #5581 Use perf-events to measure number of instructions in addition to wall clock time for metrics to get more stable measurements on CI. That plan was foiled by perf not working on the CI.

  • #5573, #5578, …​ : rename various AST types

    Old Name New Name

    ast::NominalDef

    ast::AdtDef

    ast::ModuleItem

    ast::Item

    ast::Alias

    ast::Rename

    ast::TypeParamList

    ast::GenericParamList

    ast::TypeRef

    ast::Type

    ast::PlaceholderType

    ast::InferType

    ast::DotDotPat

    ast::RestPat