diff options
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r-- | pkgs/development/tools/analysis/frama-c/default.nix | 3 | ||||
-rw-r--r-- | pkgs/development/tools/bacon/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/tools/electron/default.nix | 48 | ||||
-rw-r--r-- | pkgs/development/tools/flip-link/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/tools/go-mockery/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/tools/ijq/default.nix | 22 | ||||
-rw-r--r-- | pkgs/development/tools/misc/clojure-lsp/default.nix | 5 | ||||
-rw-r--r-- | pkgs/development/tools/misc/clojure-lsp/disable-check-toolchain.patch | 12 | ||||
-rw-r--r-- | pkgs/development/tools/misc/hydra/common.nix | 4 | ||||
-rw-r--r-- | pkgs/development/tools/rust/cargo-embed/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/tools/rust/probe-run/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/tools/rust/rust-analyzer/default.nix | 14 | ||||
-rw-r--r-- | pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch | 673 | ||||
-rwxr-xr-x | pkgs/development/tools/rust/rust-analyzer/update.sh | 3 | ||||
-rw-r--r-- | pkgs/development/tools/zprint/default.nix | 1 |
15 files changed, 760 insertions, 53 deletions
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix index a10d015e9ff..1079974ae62 100644 --- a/pkgs/development/tools/analysis/frama-c/default.nix +++ b/pkgs/development/tools/analysis/frama-c/default.nix @@ -15,6 +15,7 @@ let mlgmpidl num ocamlgraph + stdlib-shims why3 yojson zarith @@ -37,7 +38,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoconf wrapGAppsHook ]; buildInputs = with ocamlPackages; [ - ncurses ocaml findlib ltl2ba ocamlgraph yojson menhirLib camlzip + ncurses ocaml findlib ltl2ba ocamlgraph ocamlgraph_gtk yojson menhirLib camlzip lablgtk coq graphviz zarith apron why3 mlgmpidl doxygen gdk-pixbuf ]; diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix index 1cf066e6b49..52f0d29ed60 100644 --- a/pkgs/development/tools/bacon/default.nix +++ b/pkgs/development/tools/bacon/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "bacon"; - version = "1.1.5"; + version = "1.1.6"; src = fetchFromGitHub { owner = "Canop"; repo = pname; rev = "v${version}"; - sha256 = "0wyx216q9q7y60bnnw4cbpv9zlbnjm2hwq0llkjw60fp3qalj9am"; + sha256 = "sha256-0/fQhBHkoI/0PhuUDLGfyjytgEEJWSr1P67Rh0vGDnA="; }; - cargoSha256 = "1pii5ajl3xgylrm20pkwbd1lk7gv0pshl1cxjfna0l63q56v7f21"; + cargoSha256 = "sha256-O1jJXnvPLxJmcnf3qpdcpdrogQ7FtjHF8uUxQRWLDyg="; buildInputs = lib.optional stdenv.isDarwin CoreServices; diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 8377e7c4431..a04905705d4 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -95,33 +95,33 @@ rec { headers = "01x6a0r2jawjpl09ixgzap3g0z6znj34hsnnhzanavkbds0ri4k6"; }; - electron_11 = mkElectron "11.4.8" { - x86_64-linux = "742cfa025fa64cfa02c4eb8584e9f2f15321b795688a5c1a6597b1e1da1e98e7"; - x86_64-darwin = "b251b02f70a9a0e63866836c0638200cca05392cdec1b5271ebbe0c016276364"; - i686-linux = "a7813cfa785e8e9a440db4cfb0d98dcd5ba52041fb018856d9c544a43ae55357"; - armv7l-linux = "a72e346a569f582fc40e9ebbfd6f6faf5c32dd6e83fdcd5335c46e332dbe5ee6"; - aarch64-linux = "acd4e32851cc0fdfe1a62df90a6c8b02139e510b7c3212bd4ac57f767e85dfe4"; - aarch64-darwin = "ee28b1d525ae5be60253430200692f3fe6b4d588921aedd246bfc851014127ea"; - headers = "0l8pc4grabj641wf1q37bc19w0y9913v4c9s8pbniz7py1a6rpmn"; + electron_11 = mkElectron "11.4.9" { + x86_64-linux = "c18ed2e16e60ca1eddd01ab2e4fff2bbfd9f197ab17b7577155f05687297d7be"; + x86_64-darwin = "ec34759ae768e55449c23244283c8af3dc5d5ab533d64cea0231be0a0878ebdd"; + i686-linux = "ef9125268e03f2f1d13c2b2505ba2529af88a8397cad640bd35116caae7ab296"; + armv7l-linux = "b43c00f4a0b4cf8affa09cedff93066d23d57a6148af383a8fc9f6d25b63d449"; + aarch64-linux = "3df038538056fc4a918afe07138052b1f53648c411add47c3a18abe8a30e6f71"; + aarch64-darwin = "acf880cfaea9ca382831df165fa7ef7e0b442c663d5a586cdfe0baa1aea4e17c"; + headers = "1wfhc22g680pvv85rq8d8lw4vphpr700fmzs3nwxixxnzhp1sb79"; }; - electron_12 = mkElectron "12.0.11" { - x86_64-linux = "e3bac4b81f0d99447f8ff7edf88f2e9941699d30cf1f41a41af7a93b199e805b"; - x86_64-darwin = "eeee59eb751e0d95538a40c74aa1563ee4485903eb028c462872004cc8dfdabb"; - i686-linux = "97fe1b7f7414a9cf1416d4a2d61139cc71f50765f48df02b6ccb4c1af62f0d97"; - armv7l-linux = "c43b28d5d15b303a7643e7d2320f03577e27d90a13f4fa1dc3e14f81630ab62e"; - aarch64-linux = "b5f17959b8cb55f0557f4a0a37cd99c1c6d1d48fad839402383d9087175b4f44"; - aarch64-darwin = "e5f88751bfb1344ea2f1345b56e95093ebfa850761b53752fbcf8c6d8de0f824"; - headers = "11801qplb7s7zs0yjmk4436yp3xg2szn7hzag75v3g026k2ay1xz"; + electron_12 = mkElectron "12.0.12" { + x86_64-linux = "98e7cc5dd3f161c37cbbd9aef90d55c51531a4bad8221a9d1f92e78014758054"; + x86_64-darwin = "3a39933c1c83406e4ddbce2af193e9a6b7b77f418c4f1d5e7b8f9edc348acd15"; + i686-linux = "2a06936fa13929342ebb7521d2e3e8b4a7a08ac1d757c0521a047b4cf0a979fc"; + armv7l-linux = "c0a2c13d99a1152aa6252fd8237207a6f395b70d0890eba5b7209a03beb9a6ec"; + aarch64-linux = "a92e2eaebab75b93eda0bc523ba9262a32db95c7546c095fee93d39a304521a0"; + aarch64-darwin = "810a1f36574a2db8d7d4022a042a65cceec3443644487868c5609b16b5dfe29f"; + headers = "1qis2k8yc7g1klvhiysjrgl5gclx4idxdz60kh8ldrji5a0lgha1"; }; - electron_13 = mkElectron "13.1.2" { - x86_64-linux = "1391bae19ff6446fb56f00ba5597bb92a509b6e808534087c153b9fcebddbeef"; - x86_64-darwin = "b8c5eca90864ce4a91e1fdb8a932598fad31922407b502eeb868a508fd26347f"; - i686-linux = "40d6c373b5e77b80285715fb66acb6562ea1d685f6644d463fb427f846f09fdc"; - armv7l-linux = "ce31a8d455663f6e85ed75fa9ac1007b55d6fd0b9445d9e51e2a103706e49e94"; - aarch64-linux = "06965ade2aaf4dce78b5d5b075fc09c225d7d83817297338fc26eb4d33ebb289"; - aarch64-darwin = "dde2b3fd2ac52097481ff5bfd54c358432f7f2402b0b20ae32681ae6e5a4d451"; - headers = "1qrw1cpj63757c582zzz0gchaq0w0xq1mm5702q34xyv06mh5h93"; + electron_13 = mkElectron "13.1.3" { + x86_64-linux = "33646b1bace221edd636f172b5d3ae391fe519dd6a49aaeef4e50916d636fcfb"; + x86_64-darwin = "246356862f4e97bdba31d9b0f2dadc45b1d7c689d0762bc27b89251cafcdd14c"; + i686-linux = "1237ab5043b22f00236d52e12b771778f740fd0d5c06d0f5aee4219afb9b5b38"; + armv7l-linux = "7106ef6720162d9f38927583968dd9b45f4c678d4bdbe549604aa3b6a40f7f50"; + aarch64-linux = "3213bb087e6f3a9091c2fe2de13a597a9d122735a996872ba51e17c138148cae"; + aarch64-darwin = "35bb2b36e73df228c295c5e820ac7f4206b3ea9e546b61e32a4b080fd1f08234"; + headers = "020xka91w4i5p24i56zlk2i6xsynwwvryh3fim336mmkjryqhqxp"; }; } diff --git a/pkgs/development/tools/flip-link/default.nix b/pkgs/development/tools/flip-link/default.nix index 697e4fb3536..6e752379a73 100644 --- a/pkgs/development/tools/flip-link/default.nix +++ b/pkgs/development/tools/flip-link/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "flip-link"; - version = "0.1.3"; + version = "0.1.4"; src = fetchFromGitHub { owner = "knurling-rs"; repo = pname; rev = "v${version}"; - sha256 = "0x6l5aps0aryf3iqiyk969zrq77bm95jvm6f0f5vqqqizxjd3yfl"; + sha256 = "sha256-LE0cWS6sOb9/VvGloezNnePHGldnpfNTdCFUv3F/nwE="; }; - cargoSha256 = "13rgpbwaz2b928rg15lbaszzjymph54pwingxpszp5paihx4iayr"; + cargoSha256 = "sha256-8WBMF5stMB4JXvYwa5yHVFV+3utDuMFJNTZ4fZFDftw="; buildInputs = lib.optional stdenv.isDarwin libiconv; diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix index 347bfeb116a..598ee15a5f3 100644 --- a/pkgs/development/tools/go-mockery/default.nix +++ b/pkgs/development/tools/go-mockery/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "go-mockery"; - version = "2.8.0"; + version = "2.9.0"; src = fetchFromGitHub { owner = "vektra"; repo = "mockery"; rev = "v${version}"; - sha256 = "sha256-sOZig47KKKGJmV9QNCa+TwYCxemeVl6xssfExSaaFjY="; + sha256 = "sha256-lR4EhFddP+ae1xpRW82w53yNoBG4RpMHk8w4XFGcli8="; }; vendorSha256 = "sha256-//V3ia3YP1hPgC1ipScURZ5uXU4A2keoG6dGuwaPBcA="; diff --git a/pkgs/development/tools/ijq/default.nix b/pkgs/development/tools/ijq/default.nix index f3c0b6c7b1b..4165f9bd41c 100644 --- a/pkgs/development/tools/ijq/default.nix +++ b/pkgs/development/tools/ijq/default.nix @@ -1,18 +1,26 @@ -{ buildGoModule, fetchgit, lib, jq, makeWrapper }: +{ buildGoModule, fetchFromSourcehut, lib, jq, installShellFiles, makeWrapper, scdoc }: buildGoModule rec { pname = "ijq"; - version = "0.3.4"; + version = "0.3.5"; - src = fetchgit { - url = "https://git.sr.ht/~gpanders/ijq"; + src = fetchFromSourcehut { + owner = "~gpanders"; + repo = pname; rev = "v${version}"; - sha256 = "ZKxEK6SPxEC0S5yXSzITPn0HhpJa4Bcf9X8/N+ZZAeA="; + sha256 = "sha256-0xLmjidPxjSkYmLI4lWieT2rswZsWBY/IUXFOrUFAMo="; }; - vendorSha256 = "04KlXE2I8ZVDbyo9tBnFskLB6fo5W5/lPzSpo8KGqUU="; + vendorSha256 = "sha256-7UuQXnQdlUMC0ZIgHydQ5bZMB5XrE7dhx5+1NI+zFkM="; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ installShellFiles makeWrapper scdoc ]; + + ldflags = [ "-s" "-w" "-X main.Version=${version}" ]; + + postBuild = '' + scdoc < ijq.1.scd > ijq.1 + installManPage ijq.1 + ''; postInstall = '' wrapProgram "$out/bin/ijq" \ diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 3f51136c65c..8783d217c1f 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -18,6 +18,9 @@ stdenv.mkDerivation rec { GRAALVM_HOME = graalvm11-ce; CLOJURE_LSP_JAR = jar; + CLOJURE_LSP_XMX = "-J-Xmx4g"; + + patches = lib.optionals stdenv.isDarwin [ ./disable-check-toolchain.patch ]; buildInputs = [ graalvm11-ce ]; @@ -52,7 +55,7 @@ stdenv.mkDerivation rec { description = "Language Server Protocol (LSP) for Clojure"; homepage = "https://github.com/clojure-lsp/clojure-lsp"; license = licenses.mit; - maintainers = [ maintainers.ericdallo ]; + maintainers = with maintainers; [ ericdallo babariviere ]; platforms = graalvm11-ce.meta.platforms; }; } diff --git a/pkgs/development/tools/misc/clojure-lsp/disable-check-toolchain.patch b/pkgs/development/tools/misc/clojure-lsp/disable-check-toolchain.patch new file mode 100644 index 00000000000..402189627c2 --- /dev/null +++ b/pkgs/development/tools/misc/clojure-lsp/disable-check-toolchain.patch @@ -0,0 +1,12 @@ +diff --git a/graalvm/native-unix-compile.sh b/graalvm/native-unix-compile.sh +index ec0e49f..e19a120 100755 +--- a/graalvm/native-unix-compile.sh ++++ b/graalvm/native-unix-compile.sh +@@ -17,6 +17,7 @@ CLOJURE_LSP_XMX=${CLOJURE_LSP_XMX:-"-J-Xmx4g"} + + args=("-jar" "$CLOJURE_LSP_JAR" + "-H:+ReportExceptionStackTraces" ++ "-H:-CheckToolchain" + "--verbose" + "--no-fallback" + "--native-image-info" diff --git a/pkgs/development/tools/misc/hydra/common.nix b/pkgs/development/tools/misc/hydra/common.nix index 9ad8295c9b9..5b1973c2b9e 100644 --- a/pkgs/development/tools/misc/hydra/common.nix +++ b/pkgs/development/tools/misc/hydra/common.nix @@ -1,5 +1,5 @@ { stdenv, nix, perlPackages, buildEnv -, makeWrapper, autoconf, automake, libtool, unzip, pkg-config, sqlite, libpqxx +, makeWrapper, autoconf, automake, libtool, unzip, pkg-config, sqlite, libpqxx_6 , top-git, mercurial, darcs, subversion, breezy, openssl, bzip2, libxslt , perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json , docbook_xsl, openssh, gnused, coreutils, findutils, gzip, xz, gnutar @@ -82,7 +82,7 @@ in stdenv.mkDerivation rec { inherit stdenv src version patches; buildInputs = - [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx + [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx_6 top-git mercurial /*darcs*/ subversion breezy openssl bzip2 libxslt perlDeps perl nix postgresql # for running the tests diff --git a/pkgs/development/tools/rust/cargo-embed/default.nix b/pkgs/development/tools/rust/cargo-embed/default.nix index 4fb994b3ee2..72c67c55e4d 100644 --- a/pkgs/development/tools/rust/cargo-embed/default.nix +++ b/pkgs/development/tools/rust/cargo-embed/default.nix @@ -4,16 +4,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-embed"; - version = "0.10.1"; + version = "0.11.0"; src = fetchFromGitHub { owner = "probe-rs"; repo = pname; rev = "v${version}"; - sha256 = "1z8n883cb4jca3phi9x2kwl01xclyr00l8jxgiyd28l2jik78i5k"; + sha256 = "151zdnv4i0dgkk4w3j2a1sdklcxw07bgqjs7sv6lvkylrx8dfrxa"; }; - cargoSha256 = "1ir9qngxmja6cm42m40jqbga9mlfjllm23ca26wyigjv3025pi6i"; + cargoSha256 = "00p2rwqrax99kwadc8bfq8pbcijals2nzpx43wb03kwxl4955wn9"; nativeBuildInputs = [ pkg-config rustfmt ]; buildInputs = [ libusb1 libftdi1 ]; diff --git a/pkgs/development/tools/rust/probe-run/default.nix b/pkgs/development/tools/rust/probe-run/default.nix index 336cbef9bae..dcbff79a3c8 100644 --- a/pkgs/development/tools/rust/probe-run/default.nix +++ b/pkgs/development/tools/rust/probe-run/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { pname = "probe-run"; - version = "0.2.3"; + version = "0.2.4"; src = fetchFromGitHub { owner = "knurling-rs"; repo = pname; rev = "v${version}"; - sha256 = "0jvyqynhg2fva29bzj4wrg3f22xpvl1hdf9kqws2c3wdiz9lc8l4"; + sha256 = "069f4vai1cw69xw3q7xyd81k3rklyb0bs77jfsrwq97vy7b78i92"; }; - cargoSha256 = "1jijpm4k3py09k9w9a2zj1795r02wsa53r4sxa4ws96d4gkv4x5b"; + cargoSha256 = "0j5bl1sh3hcx38qckrjlfggsfsczzw2vbb3ks5x59dqakqh5fb7v"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ] diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix index 8eca1fda2e5..07b00deb9c3 100644 --- a/pkgs/development/tools/rust/rust-analyzer/default.nix +++ b/pkgs/development/tools/rust/rust-analyzer/default.nix @@ -1,21 +1,27 @@ { lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, cmake , libiconv , useMimalloc ? false -, doCheck ? true +# FIXME: Test doesn't pass under rustc 1.52.1 due to different escaping of `'` in string. +, doCheck ? false }: rustPlatform.buildRustPackage rec { pname = "rust-analyzer-unwrapped"; - version = "2021-06-07"; - cargoSha256 = "sha256-TyoCu2Q4Tr2EIWxQcjSxASni4dkeEVsfrF5UN7IVxSs="; + version = "2021-06-21"; + cargoSha256 = "sha256-OpfcxBeNwXSD830Sz3o07kgIdXTbZNNVGpaPeCIGGV8="; src = fetchFromGitHub { owner = "rust-analyzer"; repo = "rust-analyzer"; rev = version; - sha256 = "sha256-f8jdBL42+bU8KKchkW4fF6+kDBjgpoOZyP5yOYsebBk="; + sha256 = "sha256-nL5lSvxpOS+fw4iH/Gnl/DI86T9tUtguOy+wLGRkoeY="; }; + patches = [ + # We have rustc 1.52.1 in nixpkgs. + ./no-rust-1-53-features.patch + ]; + buildAndTestSubdir = "crates/rust-analyzer"; cargoBuildFlags = lib.optional useMimalloc "--features=mimalloc"; diff --git a/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch b/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch new file mode 100644 index 00000000000..9fa54e8a903 --- /dev/null +++ b/pkgs/development/tools/rust/rust-analyzer/no-rust-1-53-features.patch @@ -0,0 +1,673 @@ +diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs +index 43162797e..613266e07 100644 +--- a/crates/hir/src/semantics.rs ++++ b/crates/hir/src/semantics.rs +@@ -51,14 +51,12 @@ impl PathResolution { + PathResolution::Def(ModuleDef::BuiltinType(builtin)) => { + Some(TypeNs::BuiltinType((*builtin).into())) + } +- PathResolution::Def( +- ModuleDef::Const(_) +- | ModuleDef::Variant(_) +- | ModuleDef::Function(_) +- | ModuleDef::Module(_) +- | ModuleDef::Static(_) +- | ModuleDef::Trait(_), +- ) => None, ++ PathResolution::Def(ModuleDef::Const(_)) ++ | PathResolution::Def(ModuleDef::Variant(_)) ++ | PathResolution::Def(ModuleDef::Function(_)) ++ | PathResolution::Def(ModuleDef::Module(_)) ++ | PathResolution::Def(ModuleDef::Static(_)) ++ | PathResolution::Def(ModuleDef::Trait(_)) => None, + PathResolution::Def(ModuleDef::TypeAlias(alias)) => { + Some(TypeNs::TypeAliasId((*alias).into())) + } +@@ -67,7 +65,8 @@ impl PathResolution { + } + PathResolution::TypeParam(param) => Some(TypeNs::GenericParam((*param).into())), + PathResolution::SelfType(impl_def) => Some(TypeNs::SelfType((*impl_def).into())), +- PathResolution::AssocItem(AssocItem::Const(_) | AssocItem::Function(_)) => None, ++ PathResolution::AssocItem(AssocItem::Const(_)) ++ | PathResolution::AssocItem(AssocItem::Function(_)) => None, + PathResolution::AssocItem(AssocItem::TypeAlias(alias)) => { + Some(TypeNs::TypeAliasId((*alias).into())) + } +diff --git a/crates/hir_def/src/item_tree/pretty.rs b/crates/hir_def/src/item_tree/pretty.rs +index e63bc8232..b1e1b70d0 100644 +--- a/crates/hir_def/src/item_tree/pretty.rs ++++ b/crates/hir_def/src/item_tree/pretty.rs +@@ -63,7 +63,7 @@ impl<'a> Printer<'a> { + fn blank(&mut self) { + let mut iter = self.buf.chars().rev().fuse(); + match (iter.next(), iter.next()) { +- (Some('\n'), Some('\n') | None) | (None, None) => {} ++ (Some('\n'), Some('\n')) | (Some('\n'), None) | (None, None) => {} + (Some('\n'), Some(_)) => { + self.buf.push('\n'); + } +@@ -77,7 +77,7 @@ impl<'a> Printer<'a> { + + fn whitespace(&mut self) { + match self.buf.chars().next_back() { +- None | Some('\n' | ' ') => {} ++ None | Some('\n') | Some(' ') => {} + _ => self.buf.push(' '), + } + } +diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs +index 927a7b6e8..fc2c50fb8 100644 +--- a/crates/hir_def/src/nameres/collector.rs ++++ b/crates/hir_def/src/nameres/collector.rs +@@ -1260,7 +1260,7 @@ impl DefCollector<'_> { + for directive in &self.unresolved_imports { + if let ImportSource::Import { id: import, use_tree } = &directive.import.source { + match (directive.import.path.segments().first(), &directive.import.path.kind) { +- (Some(krate), PathKind::Plain | PathKind::Abs) => { ++ (Some(krate), PathKind::Plain) | (Some(krate), PathKind::Abs) => { + if diagnosed_extern_crates.contains(krate) { + continue; + } +diff --git a/crates/hir_def/src/resolver.rs b/crates/hir_def/src/resolver.rs +index 49c573087..5edd93a2a 100644 +--- a/crates/hir_def/src/resolver.rs ++++ b/crates/hir_def/src/resolver.rs +@@ -605,7 +605,8 @@ fn to_value_ns(per_ns: PerNs) -> Option<ValueNs> { + ModuleDefId::ConstId(it) => ValueNs::ConstId(it), + ModuleDefId::StaticId(it) => ValueNs::StaticId(it), + +- ModuleDefId::AdtId(AdtId::EnumId(_) | AdtId::UnionId(_)) ++ ModuleDefId::AdtId(AdtId::EnumId(_)) ++ | ModuleDefId::AdtId(AdtId::UnionId(_)) + | ModuleDefId::TraitId(_) + | ModuleDefId::TypeAliasId(_) + | ModuleDefId::BuiltinType(_) +diff --git a/crates/hir_def/src/visibility.rs b/crates/hir_def/src/visibility.rs +index aeb1e7726..83500f54e 100644 +--- a/crates/hir_def/src/visibility.rs ++++ b/crates/hir_def/src/visibility.rs +@@ -172,8 +172,9 @@ impl Visibility { + /// visible in unrelated modules). + pub(crate) fn max(self, other: Visibility, def_map: &DefMap) -> Option<Visibility> { + match (self, other) { +- (Visibility::Module(_) | Visibility::Public, Visibility::Public) +- | (Visibility::Public, Visibility::Module(_)) => Some(Visibility::Public), ++ (Visibility::Module(_), Visibility::Public) ++ | (Visibility::Public, Visibility::Module(_)) ++ | (Visibility::Public, Visibility::Public) => Some(Visibility::Public), + (Visibility::Module(mod_a), Visibility::Module(mod_b)) => { + if mod_a.krate != mod_b.krate { + return None; +diff --git a/crates/hir_expand/src/hygiene.rs b/crates/hir_expand/src/hygiene.rs +index 848522411..05c6c3fb1 100644 +--- a/crates/hir_expand/src/hygiene.rs ++++ b/crates/hir_expand/src/hygiene.rs +@@ -146,11 +146,10 @@ impl HygieneInfo { + (&self.macro_arg.1, InFile::new(loc.kind.file_id(), arg_start)) + } + mbe::Origin::Def => match (&*self.macro_def, self.def_start) { +- ( +- TokenExpander::MacroDef { def_site_token_map, .. } +- | TokenExpander::MacroRules { def_site_token_map, .. }, +- Some(tt), +- ) => (def_site_token_map, tt), ++ (TokenExpander::MacroDef { def_site_token_map, .. }, Some(tt)) ++ | (TokenExpander::MacroRules { def_site_token_map, .. }, Some(tt)) => { ++ (def_site_token_map, tt) ++ } + _ => panic!("`Origin::Def` used with non-`macro_rules!` macro"), + }, + }; +diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs +index c31426d7c..33107aa24 100644 +--- a/crates/hir_expand/src/lib.rs ++++ b/crates/hir_expand/src/lib.rs +@@ -368,11 +368,10 @@ impl ExpansionInfo { + let (token_map, tt) = match origin { + mbe::Origin::Call => (&self.macro_arg.1, self.arg.clone()), + mbe::Origin::Def => match (&*self.macro_def, self.def.as_ref()) { +- ( +- db::TokenExpander::MacroRules { def_site_token_map, .. } +- | db::TokenExpander::MacroDef { def_site_token_map, .. }, +- Some(tt), +- ) => (def_site_token_map, tt.as_ref().map(|tt| tt.syntax().clone())), ++ (db::TokenExpander::MacroRules { def_site_token_map, .. }, Some(tt)) ++ | (db::TokenExpander::MacroDef { def_site_token_map, .. }, Some(tt)) => { ++ (def_site_token_map, tt.as_ref().map(|tt| tt.syntax().clone())) ++ } + _ => panic!("`Origin::Def` used with non-`macro_rules!` macro"), + }, + }; +diff --git a/crates/hir_ty/src/consteval.rs b/crates/hir_ty/src/consteval.rs +index ab1afce08..6f0bf8f8c 100644 +--- a/crates/hir_ty/src/consteval.rs ++++ b/crates/hir_ty/src/consteval.rs +@@ -38,7 +38,8 @@ impl ConstExt for Const { + // FIXME: support more than just evaluating literals + pub fn eval_usize(expr: &Expr) -> Option<u64> { + match expr { +- Expr::Literal(Literal::Uint(v, None | Some(BuiltinUint::Usize))) => (*v).try_into().ok(), ++ Expr::Literal(Literal::Uint(v, None)) ++ | Expr::Literal(Literal::Uint(v, Some(BuiltinUint::Usize))) => (*v).try_into().ok(), + _ => None, + } + } +diff --git a/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs b/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs +index e3d640a79..471cd4921 100644 +--- a/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs ++++ b/crates/hir_ty/src/diagnostics/match_check/deconstruct_pat.rs +@@ -84,7 +84,10 @@ impl IntRange { + #[inline] + fn is_integral(ty: &Ty) -> bool { + match ty.kind(&Interner) { +- TyKind::Scalar(Scalar::Char | Scalar::Int(_) | Scalar::Uint(_) | Scalar::Bool) => true, ++ TyKind::Scalar(Scalar::Char) ++ | TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) ++ | TyKind::Scalar(Scalar::Bool) => true, + _ => false, + } + } +@@ -378,7 +381,7 @@ impl Constructor { + // Wildcards cover anything + (_, Wildcard) => true, + // The missing ctors are not covered by anything in the matrix except wildcards. +- (Missing | Wildcard, _) => false, ++ (Missing, _) | (Wildcard, _) => false, + + (Single, Single) => true, + (Variant(self_id), Variant(other_id)) => self_id == other_id, +@@ -520,7 +523,7 @@ impl SplitWildcard { + } + } + TyKind::Scalar(Scalar::Char) => unhandled(), +- TyKind::Scalar(Scalar::Int(..) | Scalar::Uint(..)) => unhandled(), ++ TyKind::Scalar(Scalar::Int(..)) | TyKind::Scalar(Scalar::Uint(..)) => unhandled(), + TyKind::Never if !cx.feature_exhaustive_patterns() && !pcx.is_top_level => { + smallvec![NonExhaustive] + } +diff --git a/crates/hir_ty/src/infer/coerce.rs b/crates/hir_ty/src/infer/coerce.rs +index 7be914451..4b7f31521 100644 +--- a/crates/hir_ty/src/infer/coerce.rs ++++ b/crates/hir_ty/src/infer/coerce.rs +@@ -47,7 +47,10 @@ impl<'a> InferenceContext<'a> { + // pointers to have a chance at getting a match. See + // https://github.com/rust-lang/rust/blob/7b805396bf46dce972692a6846ce2ad8481c5f85/src/librustc_typeck/check/coercion.rs#L877-L916 + let sig = match (ty1.kind(&Interner), ty2.kind(&Interner)) { +- (TyKind::FnDef(..) | TyKind::Closure(..), TyKind::FnDef(..) | TyKind::Closure(..)) => { ++ (TyKind::FnDef(..), TyKind::FnDef(..)) ++ | (TyKind::Closure(..), TyKind::FnDef(..)) ++ | (TyKind::FnDef(..), TyKind::Closure(..)) ++ | (TyKind::Closure(..), TyKind::Closure(..)) => { + // FIXME: we're ignoring safety here. To be more correct, if we have one FnDef and one Closure, + // we should be coercing the closure to a fn pointer of the safety of the FnDef + cov_mark::hit!(coerce_fn_reification); +@@ -445,7 +448,8 @@ fn safe_to_unsafe_fn_ty(fn_ty: FnPointer) -> FnPointer { + + fn coerce_mutabilities(from: Mutability, to: Mutability) -> Result<(), TypeError> { + match (from, to) { +- (Mutability::Mut, Mutability::Mut | Mutability::Not) ++ (Mutability::Mut, Mutability::Mut) ++ | (Mutability::Mut, Mutability::Not) + | (Mutability::Not, Mutability::Not) => Ok(()), + (Mutability::Not, Mutability::Mut) => Err(TypeError), + } +diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs +index c3a5b979f..346e94128 100644 +--- a/crates/hir_ty/src/infer/expr.rs ++++ b/crates/hir_ty/src/infer/expr.rs +@@ -593,11 +593,11 @@ impl<'a> InferenceContext<'a> { + UnaryOp::Neg => { + match inner_ty.kind(&Interner) { + // Fast path for builtins +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_) | Scalar::Float(_)) +- | TyKind::InferenceVar( +- _, +- TyVariableKind::Integer | TyVariableKind::Float, +- ) => inner_ty, ++ TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) ++ | TyKind::Scalar(Scalar::Float(_)) ++ | TyKind::InferenceVar(_, TyVariableKind::Integer) ++ | TyKind::InferenceVar(_, TyVariableKind::Float) => inner_ty, + // Otherwise we resolve via the std::ops::Neg trait + _ => self + .resolve_associated_type(inner_ty, self.resolve_ops_neg_output()), +@@ -606,7 +606,9 @@ impl<'a> InferenceContext<'a> { + UnaryOp::Not => { + match inner_ty.kind(&Interner) { + // Fast path for builtins +- TyKind::Scalar(Scalar::Bool | Scalar::Int(_) | Scalar::Uint(_)) ++ TyKind::Scalar(Scalar::Bool) ++ | TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) + | TyKind::InferenceVar(_, TyVariableKind::Integer) => inner_ty, + // Otherwise we resolve via the std::ops::Not trait + _ => self +@@ -733,7 +735,7 @@ impl<'a> InferenceContext<'a> { + Expr::Array(array) => { + let elem_ty = + match expected.to_option(&mut self.table).as_ref().map(|t| t.kind(&Interner)) { +- Some(TyKind::Array(st, _) | TyKind::Slice(st)) => st.clone(), ++ Some(TyKind::Array(st, _)) | Some(TyKind::Slice(st)) => st.clone(), + _ => self.table.new_type_var(), + }; + +diff --git a/crates/hir_ty/src/infer/pat.rs b/crates/hir_ty/src/infer/pat.rs +index c79ed91ea..80ecd4ea9 100644 +--- a/crates/hir_ty/src/infer/pat.rs ++++ b/crates/hir_ty/src/infer/pat.rs +@@ -297,11 +297,10 @@ fn is_non_ref_pat(body: &hir_def::body::Body, pat: PatId) -> bool { + Expr::Literal(Literal::String(..)) => false, + _ => true, + }, +- Pat::Bind { +- mode: BindingAnnotation::Mutable | BindingAnnotation::Unannotated, +- subpat: Some(subpat), +- .. +- } => is_non_ref_pat(body, *subpat), ++ Pat::Bind { mode: BindingAnnotation::Mutable, subpat: Some(subpat), .. } ++ | Pat::Bind { mode: BindingAnnotation::Unannotated, subpat: Some(subpat), .. } => { ++ is_non_ref_pat(body, *subpat) ++ } + Pat::Wild | Pat::Bind { .. } | Pat::Ref { .. } | Pat::Box { .. } | Pat::Missing => false, + } + } +diff --git a/crates/hir_ty/src/op.rs b/crates/hir_ty/src/op.rs +index 5ef6342d5..0222de2bc 100644 +--- a/crates/hir_ty/src/op.rs ++++ b/crates/hir_ty/src/op.rs +@@ -8,15 +8,17 @@ pub(super) fn binary_op_return_ty(op: BinaryOp, lhs_ty: Ty, rhs_ty: Ty) -> Ty { + match op { + BinaryOp::LogicOp(_) | BinaryOp::CmpOp(_) => TyKind::Scalar(Scalar::Bool).intern(&Interner), + BinaryOp::Assignment { .. } => TyBuilder::unit(), +- BinaryOp::ArithOp(ArithOp::Shl | ArithOp::Shr) => { ++ BinaryOp::ArithOp(ArithOp::Shl) | BinaryOp::ArithOp(ArithOp::Shr) => { + // all integer combinations are valid here + if matches!( + lhs_ty.kind(&Interner), +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)) ++ TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) + | TyKind::InferenceVar(_, TyVariableKind::Integer) + ) && matches!( + rhs_ty.kind(&Interner), +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)) ++ TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) + | TyKind::InferenceVar(_, TyVariableKind::Integer) + ) { + lhs_ty +@@ -30,15 +32,15 @@ pub(super) fn binary_op_return_ty(op: BinaryOp, lhs_ty: Ty, rhs_ty: Ty) -> Ty { + | (TyKind::Scalar(Scalar::Uint(_)), TyKind::Scalar(Scalar::Uint(_))) + | (TyKind::Scalar(Scalar::Float(_)), TyKind::Scalar(Scalar::Float(_))) => rhs_ty, + // ({int}, int) | ({int}, uint) +- ( +- TyKind::InferenceVar(_, TyVariableKind::Integer), +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)), +- ) => rhs_ty, ++ (TyKind::InferenceVar(_, TyVariableKind::Integer), TyKind::Scalar(Scalar::Int(_))) ++ | (TyKind::InferenceVar(_, TyVariableKind::Integer), TyKind::Scalar(Scalar::Uint(_))) => { ++ rhs_ty ++ } + // (int, {int}) | (uint, {int}) +- ( +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_)), +- TyKind::InferenceVar(_, TyVariableKind::Integer), +- ) => lhs_ty, ++ (TyKind::Scalar(Scalar::Int(_)), TyKind::InferenceVar(_, TyVariableKind::Integer)) ++ | (TyKind::Scalar(Scalar::Uint(_)), TyKind::InferenceVar(_, TyVariableKind::Integer)) => { ++ lhs_ty ++ } + // ({float} | float) + (TyKind::InferenceVar(_, TyVariableKind::Float), TyKind::Scalar(Scalar::Float(_))) => { + rhs_ty +@@ -67,15 +69,21 @@ pub(super) fn binary_op_rhs_expectation(op: BinaryOp, lhs_ty: Ty) -> Ty { + BinaryOp::Assignment { op: None } => lhs_ty, + BinaryOp::CmpOp(CmpOp::Eq { .. }) => match lhs_ty.kind(&Interner) { + TyKind::Scalar(_) | TyKind::Str => lhs_ty, +- TyKind::InferenceVar(_, TyVariableKind::Integer | TyVariableKind::Float) => lhs_ty, ++ TyKind::InferenceVar(_, TyVariableKind::Integer) ++ | TyKind::InferenceVar(_, TyVariableKind::Float) => lhs_ty, + _ => TyKind::Error.intern(&Interner), + }, +- BinaryOp::ArithOp(ArithOp::Shl | ArithOp::Shr) => TyKind::Error.intern(&Interner), ++ BinaryOp::ArithOp(ArithOp::Shl) | BinaryOp::ArithOp(ArithOp::Shr) => { ++ TyKind::Error.intern(&Interner) ++ } + BinaryOp::CmpOp(CmpOp::Ord { .. }) + | BinaryOp::Assignment { op: Some(_) } + | BinaryOp::ArithOp(_) => match lhs_ty.kind(&Interner) { +- TyKind::Scalar(Scalar::Int(_) | Scalar::Uint(_) | Scalar::Float(_)) => lhs_ty, +- TyKind::InferenceVar(_, TyVariableKind::Integer | TyVariableKind::Float) => lhs_ty, ++ TyKind::Scalar(Scalar::Int(_)) ++ | TyKind::Scalar(Scalar::Uint(_)) ++ | TyKind::Scalar(Scalar::Float(_)) => lhs_ty, ++ TyKind::InferenceVar(_, TyVariableKind::Integer) ++ | TyKind::InferenceVar(_, TyVariableKind::Float) => lhs_ty, + _ => TyKind::Error.intern(&Interner), + }, + } +diff --git a/crates/ide/src/join_lines.rs b/crates/ide/src/join_lines.rs +index ffa8bd182..93d3760bf 100644 +--- a/crates/ide/src/join_lines.rs ++++ b/crates/ide/src/join_lines.rs +@@ -197,7 +197,7 @@ fn join_single_use_tree(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Opti + } + + fn is_trailing_comma(left: SyntaxKind, right: SyntaxKind) -> bool { +- matches!((left, right), (T![,], T![')'] | T![']'])) ++ matches!((left, right), (T![,], T![')']) | (T![,], T![']'])) + } + + fn compute_ws(left: SyntaxKind, right: SyntaxKind) -> &'static str { +diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs +index 5808562a7..945c9b9e1 100644 +--- a/crates/ide/src/references.rs ++++ b/crates/ide/src/references.rs +@@ -79,7 +79,8 @@ pub(crate) fn find_all_refs( + }); + usages.references.retain(|_, it| !it.is_empty()); + } +- Definition::ModuleDef(hir::ModuleDef::Adt(_) | hir::ModuleDef::Variant(_)) => { ++ Definition::ModuleDef(hir::ModuleDef::Adt(_)) ++ | Definition::ModuleDef(hir::ModuleDef::Variant(_)) => { + refs.for_each(|it| { + it.retain(|reference| { + reference.name.as_name_ref().map_or(false, is_lit_name_ref) +diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs +index d44a1b45f..e186b82b7 100644 +--- a/crates/ide/src/syntax_highlighting.rs ++++ b/crates/ide/src/syntax_highlighting.rs +@@ -294,7 +294,7 @@ fn traverse( + Some(parent) => { + // We only care Name and Name_ref + match (token.kind(), parent.kind()) { +- (IDENT, NAME | NAME_REF) => parent.into(), ++ (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(), + _ => token.into(), + } + } +@@ -310,7 +310,7 @@ fn traverse( + Some(parent) => { + // We only care Name and Name_ref + match (token.kind(), parent.kind()) { +- (IDENT, NAME | NAME_REF) => parent.into(), ++ (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(), + _ => token.into(), + } + } +diff --git a/crates/ide_assists/src/handlers/extract_function.rs b/crates/ide_assists/src/handlers/extract_function.rs +index ac7f0959b..9b78cf4b1 100644 +--- a/crates/ide_assists/src/handlers/extract_function.rs ++++ b/crates/ide_assists/src/handlers/extract_function.rs +@@ -1384,7 +1384,7 @@ fn fix_param_usages(ctx: &AssistContext, params: &[Param], syntax: &SyntaxNode) + for (param, usages) in usages_for_param { + for usage in usages { + match usage.syntax().ancestors().skip(1).find_map(ast::Expr::cast) { +- Some(ast::Expr::MethodCallExpr(_) | ast::Expr::FieldExpr(_)) => { ++ Some(ast::Expr::MethodCallExpr(_)) | Some(ast::Expr::FieldExpr(_)) => { + // do nothing + } + Some(ast::Expr::RefExpr(node)) +diff --git a/crates/ide_assists/src/tests.rs b/crates/ide_assists/src/tests.rs +index 841537c77..d9d9124b6 100644 +--- a/crates/ide_assists/src/tests.rs ++++ b/crates/ide_assists/src/tests.rs +@@ -181,10 +181,9 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult, assist_label: + "unresolved assist should not contain source changes" + ), + (Some(_), ExpectedResult::NotApplicable) => panic!("assist should not be applicable!"), +- ( +- None, +- ExpectedResult::After(_) | ExpectedResult::Target(_) | ExpectedResult::Unresolved, +- ) => { ++ (None, ExpectedResult::After(_)) ++ | (None, ExpectedResult::Target(_)) ++ | (None, ExpectedResult::Unresolved) => { + panic!("code action is not applicable") + } + (None, ExpectedResult::NotApplicable) => (), +diff --git a/crates/ide_completion/src/completions/qualified_path.rs b/crates/ide_completion/src/completions/qualified_path.rs +index f5dbd203b..88f4d940d 100644 +--- a/crates/ide_completion/src/completions/qualified_path.rs ++++ b/crates/ide_completion/src/completions/qualified_path.rs +@@ -65,11 +65,9 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon + // Don't suggest attribute macros and derives. + hir::ScopeDef::MacroDef(mac) => mac.is_fn_like(), + // no values in type places +- hir::ScopeDef::ModuleDef( +- hir::ModuleDef::Function(_) +- | hir::ModuleDef::Variant(_) +- | hir::ModuleDef::Static(_), +- ) ++ hir::ScopeDef::ModuleDef(hir::ModuleDef::Function(_)) ++ | hir::ScopeDef::ModuleDef(hir::ModuleDef::Variant(_)) ++ | hir::ScopeDef::ModuleDef(hir::ModuleDef::Static(_)) + | hir::ScopeDef::Local(_) => !ctx.expects_type(), + // unless its a constant in a generic arg list position + hir::ScopeDef::ModuleDef(hir::ModuleDef::Const(_)) => { +@@ -83,13 +81,9 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon + } + } + } +- hir::PathResolution::Def( +- def +- @ +- (hir::ModuleDef::Adt(_) +- | hir::ModuleDef::TypeAlias(_) +- | hir::ModuleDef::BuiltinType(_)), +- ) => { ++ hir::PathResolution::Def(def @ hir::ModuleDef::Adt(_)) ++ | hir::PathResolution::Def(def @ hir::ModuleDef::TypeAlias(_)) ++ | hir::PathResolution::Def(def @ hir::ModuleDef::BuiltinType(_)) => { + if let hir::ModuleDef::Adt(hir::Adt::Enum(e)) = def { + add_enum_variants(acc, ctx, e); + } +diff --git a/crates/ide_completion/src/completions/unqualified_path.rs b/crates/ide_completion/src/completions/unqualified_path.rs +index 81c4fb305..8ea5a2d5b 100644 +--- a/crates/ide_completion/src/completions/unqualified_path.rs ++++ b/crates/ide_completion/src/completions/unqualified_path.rs +@@ -74,11 +74,9 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC + // Don't suggest attribute macros and derives. + ScopeDef::MacroDef(mac) => mac.is_fn_like(), + // no values in type places +- ScopeDef::ModuleDef( +- hir::ModuleDef::Function(_) +- | hir::ModuleDef::Variant(_) +- | hir::ModuleDef::Static(_), +- ) ++ ScopeDef::ModuleDef(hir::ModuleDef::Function(_)) ++ | ScopeDef::ModuleDef(hir::ModuleDef::Variant(_)) ++ | ScopeDef::ModuleDef(hir::ModuleDef::Static(_)) + | ScopeDef::Local(_) => !ctx.expects_type(), + // unless its a constant in a generic arg list position + ScopeDef::ModuleDef(hir::ModuleDef::Const(_)) +diff --git a/crates/ide_completion/src/context.rs b/crates/ide_completion/src/context.rs +index 7b76600df..09eb953fd 100644 +--- a/crates/ide_completion/src/context.rs ++++ b/crates/ide_completion/src/context.rs +@@ -242,23 +242,24 @@ impl<'a> CompletionContext<'a> { + } + + pub(crate) fn expects_assoc_item(&self) -> bool { +- matches!(self.completion_location, Some(ImmediateLocation::Trait | ImmediateLocation::Impl)) ++ matches!( ++ self.completion_location, ++ Some(ImmediateLocation::Trait) | Some(ImmediateLocation::Impl) ++ ) + } + + pub(crate) fn has_dot_receiver(&self) -> bool { + matches!( + &self.completion_location, +- Some(ImmediateLocation::FieldAccess { receiver, .. } | ImmediateLocation::MethodCall { receiver,.. }) ++ Some(ImmediateLocation::FieldAccess { receiver, .. }) | Some(ImmediateLocation::MethodCall { receiver,.. }) + if receiver.is_some() + ) + } + + pub(crate) fn dot_receiver(&self) -> Option<&ast::Expr> { + match &self.completion_location { +- Some( +- ImmediateLocation::MethodCall { receiver, .. } +- | ImmediateLocation::FieldAccess { receiver, .. }, +- ) => receiver.as_ref(), ++ Some(ImmediateLocation::MethodCall { receiver, .. }) ++ | Some(ImmediateLocation::FieldAccess { receiver, .. }) => receiver.as_ref(), + _ => None, + } + } +@@ -282,7 +283,7 @@ impl<'a> CompletionContext<'a> { + pub(crate) fn expects_ident_pat_or_ref_expr(&self) -> bool { + matches!( + self.completion_location, +- Some(ImmediateLocation::IdentPat | ImmediateLocation::RefExpr) ++ Some(ImmediateLocation::IdentPat) | Some(ImmediateLocation::RefExpr) + ) + } + +@@ -293,14 +294,14 @@ impl<'a> CompletionContext<'a> { + pub(crate) fn in_use_tree(&self) -> bool { + matches!( + self.completion_location, +- Some(ImmediateLocation::Use | ImmediateLocation::UseTree) ++ Some(ImmediateLocation::Use) | Some(ImmediateLocation::UseTree) + ) + } + + pub(crate) fn has_impl_or_trait_prev_sibling(&self) -> bool { + matches!( + self.prev_sibling, +- Some(ImmediatePrevSibling::ImplDefType | ImmediatePrevSibling::TraitDefName) ++ Some(ImmediatePrevSibling::ImplDefType) | Some(ImmediatePrevSibling::TraitDefName) + ) + } + +@@ -321,16 +322,14 @@ impl<'a> CompletionContext<'a> { + || self.previous_token_is(T![unsafe]) + || matches!( + self.prev_sibling, +- Some(ImmediatePrevSibling::Attribute | ImmediatePrevSibling::Visibility) ++ Some(ImmediatePrevSibling::Attribute) | Some(ImmediatePrevSibling::Visibility) + ) + || matches!( + self.completion_location, +- Some( +- ImmediateLocation::Attribute(_) +- | ImmediateLocation::ModDeclaration(_) +- | ImmediateLocation::RecordPat(_) +- | ImmediateLocation::RecordExpr(_) +- ) ++ Some(ImmediateLocation::Attribute(_)) ++ | Some(ImmediateLocation::ModDeclaration(_)) ++ | Some(ImmediateLocation::RecordPat(_)) ++ | Some(ImmediateLocation::RecordExpr(_)) + ) + } + +@@ -704,8 +703,8 @@ fn path_or_use_tree_qualifier(path: &ast::Path) -> Option<(ast::Path, bool)> { + + fn has_ref(token: &SyntaxToken) -> bool { + let mut token = token.clone(); +- for skip in [WHITESPACE, IDENT, T![mut]] { +- if token.kind() == skip { ++ for skip in &[WHITESPACE, IDENT, T![mut]] { ++ if token.kind() == *skip { + token = match token.prev_token() { + Some(it) => it, + None => return false, +diff --git a/crates/ide_completion/src/render/builder_ext.rs b/crates/ide_completion/src/render/builder_ext.rs +index 33d3a5ee1..749dfc665 100644 +--- a/crates/ide_completion/src/render/builder_ext.rs ++++ b/crates/ide_completion/src/render/builder_ext.rs +@@ -32,7 +32,7 @@ impl Builder { + cov_mark::hit!(no_parens_in_use_item); + return false; + } +- if matches!(ctx.path_call_kind(), Some(CallKind::Expr | CallKind::Pat)) ++ if matches!(ctx.path_call_kind(), Some(CallKind::Expr) | Some(CallKind::Pat)) + | matches!( + ctx.completion_location, + Some(ImmediateLocation::MethodCall { has_parens: true, .. }) +diff --git a/crates/mbe/src/expander/matcher.rs b/crates/mbe/src/expander/matcher.rs +index b4f2fe9a4..c2a9a38c9 100644 +--- a/crates/mbe/src/expander/matcher.rs ++++ b/crates/mbe/src/expander/matcher.rs +@@ -804,17 +804,33 @@ impl<'a> TtIter<'a> { + }; + + match (punct.char, second, third) { +- ('.', '.', Some('.' | '=')) | ('<', '<', Some('=')) | ('>', '>', Some('=')) => { ++ ('.', '.', Some('.')) ++ | ('.', '.', Some('=')) ++ | ('<', '<', Some('=')) ++ | ('>', '>', Some('=')) => { + let tt2 = self.next().unwrap().clone(); + let tt3 = self.next().unwrap().clone(); + Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2, tt3] }.into()) + } +- ('-' | '!' | '*' | '/' | '&' | '%' | '^' | '+' | '<' | '=' | '>' | '|', '=', _) +- | ('-' | '=' | '>', '>', _) ++ ('-', '=', _) ++ | ('-', '>', _) + | (':', ':', _) ++ | ('!', '=', _) + | ('.', '.', _) ++ | ('*', '=', _) ++ | ('/', '=', _) + | ('&', '&', _) ++ | ('&', '=', _) ++ | ('%', '=', _) ++ | ('^', '=', _) ++ | ('+', '=', _) + | ('<', '<', _) ++ | ('<', '=', _) ++ | ('=', '=', _) ++ | ('=', '>', _) ++ | ('>', '=', _) ++ | ('>', '>', _) ++ | ('|', '=', _) + | ('|', '|', _) => { + let tt2 = self.next().unwrap().clone(); + Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2] }.into()) +diff --git a/crates/parser/src/grammar/params.rs b/crates/parser/src/grammar/params.rs +index 5a78675fb..e0c1d3b3a 100644 +--- a/crates/parser/src/grammar/params.rs ++++ b/crates/parser/src/grammar/params.rs +@@ -184,7 +184,8 @@ fn opt_self_param(p: &mut Parser, m: Marker) -> Result<(), Marker> { + if !matches!( + (p.current(), la1, la2, la3), + (T![&], T![self], _, _) +- | (T![&], T![mut] | LIFETIME_IDENT, T![self], _) ++ | (T![&], LIFETIME_IDENT, T![self], _) ++ | (T![&], T![mut], T![self], _) + | (T![&], LIFETIME_IDENT, T![mut], T![self]) + ) { + return Err(m); +diff --git a/crates/vfs/src/vfs_path.rs b/crates/vfs/src/vfs_path.rs +index ef2d7657a..2b3d7fd84 100644 +--- a/crates/vfs/src/vfs_path.rs ++++ b/crates/vfs/src/vfs_path.rs +@@ -389,7 +389,7 @@ impl VirtualPath { + + match (file_stem, extension) { + (None, None) => None, +- (None | Some(""), Some(_)) => Some((file_name, None)), ++ (None, Some(_)) | (Some(""), Some(_)) => Some((file_name, None)), + (Some(file_stem), extension) => Some((file_stem, extension)), + } + } +diff --git a/xtask/src/install.rs b/xtask/src/install.rs +index 64ab12b42..7e2dccdfe 100644 +--- a/xtask/src/install.rs ++++ b/xtask/src/install.rs +@@ -8,7 +8,7 @@ use xshell::{cmd, pushd}; + use crate::flags; + + // Latest stable, feel free to send a PR if this lags behind. +-const REQUIRED_RUST_VERSION: u32 = 53; ++const REQUIRED_RUST_VERSION: u32 = 52; + + impl flags::Install { + pub(crate) fn run(self) -> Result<()> { diff --git a/pkgs/development/tools/rust/rust-analyzer/update.sh b/pkgs/development/tools/rust/rust-analyzer/update.sh index a67b6c927a8..3010b9bf385 100755 --- a/pkgs/development/tools/rust/rust-analyzer/update.sh +++ b/pkgs/development/tools/rust/rust-analyzer/update.sh @@ -51,6 +51,9 @@ build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps" jq '{ name, version, dependencies: (.dependencies + .devDependencies) }' "$node_src/package.json" \ >"$build_deps/package.json.new" +# FIXME: vsce@1.93.0 breaks the build. +sed 's/"vsce": ".*"/"vsce": "=1.88.0"/' --in-place "$build_deps/package.json.new" + if cmp --quiet "$build_deps"/package.json{.new,}; then echo "package.json not changed, skip updating nodePackages" rm "$build_deps"/package.json.new diff --git a/pkgs/development/tools/zprint/default.nix b/pkgs/development/tools/zprint/default.nix index 70201280620..266ac83b80d 100644 --- a/pkgs/development/tools/zprint/default.nix +++ b/pkgs/development/tools/zprint/default.nix @@ -24,6 +24,7 @@ stdenv.mkDerivation rec { -H:Name=${pname} \ -H:EnableURLProtocols=https,http \ -H:+ReportExceptionStackTraces \ + ${lib.optionalString stdenv.isDarwin ''-H:-CheckToolchain''} \ --report-unsupported-elements-at-runtime \ --initialize-at-build-time \ --no-fallback |