Repository: rust-analyzer/rust-analyzer
Pull request #5907 (2020-08-28 12:47:38)

:arrow_up: expect-test

bors r+
🤖


Patch:
diff --git a/Cargo.lock b/Cargo.lock
index f406a5ef9a..867a6c1dcd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -335,9 +335,9 @@ dependencies = [
 
 [[package]]
 name = "expect-test"
-version = "0.1.0"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e383741ea1982866572109d1a8c807bd36aad91fca701489fdca56ef92b3b8"
+checksum = "3a3cb2ab12988de61df699d210428f3a0e26907b9d0978cf2c12e65ee90adb1d"
 dependencies = [
  "difference",
  "once_cell",
diff --git a/README.md b/README.md
index a499a16513..264e4da707 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,5 @@
 <p align="center">
-  <img
-    src="https://raw.githubusercontent.com/rust-analyzer/rust-analyzer/master/assets/logo-wide.svg"
-    alt="rust-analyzer logo">
+  <img src="https://user-images.githubusercontent.com/1711539/72443316-5a79f280-37ae-11ea-858f-035209ece2dd.png" alt="rust-analyzer logo">
 </p>
 
 rust-analyzer is an **experimental** modular compiler frontend for the Rust language.
diff --git a/assets/logo-square.svg b/assets/logo-square.svg
deleted file mode 100644
index 714f0f3918..0000000000
--- a/assets/logo-square.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="24mm"
-   height="24mm"
-   viewBox="0 0 23.999999 24.000001"
-   version="1.1"
-   id="svg8"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14"
-   sodipodi:docname="ra.svg">
-  <defs
-     id="defs2" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="3.959798"
-     inkscape:cx="-31.307418"
-     inkscape:cy="43.570897"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1006"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata5">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Ebene 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-48.088531,-60.285631)">
-    <g
-       aria-label="r."
-       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-       id="text3715">
-      <path
-         d="m 50.762218,69.231544 v -1.121833 h 0.740833 v -3.386666 h -0.740833 v -1.11125 h 2.016125 l 0.306916,1.264708 q 0.301625,-0.724958 0.767292,-1.0795 0.470958,-0.354542 1.148292,-0.354542 0.28575,0 0.508,0.04762 0.22225,0.04233 0.418041,0.121709 l -0.508,1.381125 q -0.153458,-0.04233 -0.306916,-0.0635 -0.153459,-0.02117 -0.338667,-0.02117 -0.550333,0 -0.968375,0.449792 -0.41275,0.449791 -0.629708,1.143 v 1.608666 h 1.11125 v 1.121833 z m 3.804708,-3.270249 v -1.640417 l 0.248708,-0.709083 h 1.11125 l -0.312208,2.3495 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path817" />
-      <path
-         d="m 58.31341,68.23142 q 0,-0.322792 0.15875,-0.587375 0.15875,-0.269875 0.428625,-0.428625 0.269875,-0.164042 0.592666,-0.164042 0.328084,0 0.592667,0.164042 0.269875,0.15875 0.428625,0.428625 0.15875,0.264583 0.15875,0.587375 0,0.3175 -0.15875,0.587375 -0.15875,0.269874 -0.428625,0.428624 -0.264583,0.164042 -0.592667,0.164042 -0.322791,0 -0.592666,-0.164042 Q 58.63091,69.088669 58.47216,68.818795 58.31341,68.54892 58.31341,68.23142 Z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path819" />
-    </g>
-    <rect
-       style="fill:#30363b;fill-opacity:1;stroke:#20262b;stroke-width:0.39559129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3721"
-       width="10.604409"
-       height="12.604408"
-       x="61.286327"
-       y="71.483421" />
-    <g
-       aria-label="a"
-       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-       id="text3719">
-      <path
-         d="m 69.065615,79.143583 q 0,0.3175 0.08467,0.460375 0.08996,0.142875 0.28575,0.216958 l -0.343958,1.100667 q -0.497417,-0.04762 -0.841375,-0.216959 -0.338667,-0.174625 -0.534459,-0.523875 -0.322791,0.386292 -0.825499,0.576792 -0.502709,0.185208 -1.026584,0.185208 -0.867833,0 -1.386416,-0.492125 -0.513292,-0.497416 -0.513292,-1.275291 0,-0.915459 0.714375,-1.412875 0.719667,-0.497417 2.021417,-0.497417 h 0.756708 v -0.211667 q 0,-0.439208 -0.28575,-0.650875 -0.280458,-0.211666 -0.8255,-0.211666 -0.269875,0 -0.693208,0.07937 -0.423334,0.07408 -0.846667,0.216958 l -0.386292,-1.11125 q 0.545042,-0.206375 1.132417,-0.312208 0.592667,-0.105834 1.058333,-0.105834 1.254125,0 1.852083,0.513292 0.60325,0.508 0.60325,1.471083 z m -2.624666,0.60325 q 0.269875,0 0.566208,-0.15875 0.296334,-0.164042 0.449792,-0.460375 v -0.910167 h -0.41275 q -0.6985,0 -1.026583,0.216958 -0.328084,0.211667 -0.328084,0.624417 0,0.322792 0.195792,0.508 0.201083,0.179917 0.555625,0.179917 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path822" />
-    </g>
-  </g>
-</svg>
diff --git a/assets/logo-wide.svg b/assets/logo-wide.svg
deleted file mode 100644
index 70a0dab2fe..0000000000
--- a/assets/logo-wide.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="85.797134mm"
-   height="24.747536mm"
-   viewBox="0 0 85.797134 24.747536"
-   version="1.1"
-   id="svg8"
-   inkscape:version="0.92.4 5da689c313, 2019-01-14"
-   sodipodi:docname="rust analyzer.svg">
-  <defs
-     id="defs2" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.979899"
-     inkscape:cx="64.938033"
-     inkscape:cy="-10.231391"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1006"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata5">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Ebene 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-29.534624,-59.398722)">
-    <g
-       aria-label="rust."
-       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-       id="text3715">
-      <path
-         d="m 31.712199,68.702377 v -1.121833 h 0.740834 v -3.386667 h -0.740834 v -1.11125 h 2.016125 l 0.306917,1.264709 q 0.301625,-0.724959 0.767292,-1.0795 0.470958,-0.354542 1.148291,-0.354542 0.28575,0 0.508,0.04762 0.22225,0.04233 0.418042,0.121708 l -0.508,1.381125 q -0.153458,-0.04233 -0.306917,-0.0635 -0.153458,-0.02117 -0.338666,-0.02117 -0.550334,0 -0.968375,0.449791 -0.41275,0.449792 -0.629709,1.143 v 1.608667 h 1.11125 v 1.121833 z m 3.804709,-3.27025 v -1.640416 l 0.248708,-0.709084 h 1.11125 l -0.312208,2.3495 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path817" />
-      <path
-         d="m 39.681433,63.082627 v 3.847042 q 0,0.407458 0.148167,0.560917 0.153458,0.153458 0.423333,0.153458 0.259292,0 0.518583,-0.164042 0.259292,-0.164041 0.433917,-0.4445 V 63.082627 H 42.8776 v 5.61975 h -1.4605 l -0.07408,-0.656166 q -0.28575,0.41275 -0.751416,0.624416 -0.465667,0.211667 -0.973667,0.211667 -0.814917,0 -1.211792,-0.470958 -0.396875,-0.47625 -0.396875,-1.275292 v -4.053417 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path819" />
-      <path
-         d="m 46.6135,67.686377 q 0.418042,0 0.672042,-0.132291 0.259291,-0.132292 0.259291,-0.396875 0,-0.179917 -0.100541,-0.301625 -0.100542,-0.121709 -0.386292,-0.232834 -0.28575,-0.111125 -0.846667,-0.264583 -0.513291,-0.137583 -0.910166,-0.34925 -0.391584,-0.211667 -0.613834,-0.545042 -0.216958,-0.333375 -0.216958,-0.830791 0,-0.502709 0.280458,-0.894292 0.280459,-0.391583 0.8255,-0.613833 0.545042,-0.227542 1.3335,-0.227542 0.751417,0 1.307042,0.195792 0.560917,0.1905 0.968375,0.486833 l -0.66675,0.98425 q -0.34925,-0.216958 -0.751417,-0.343958 -0.402166,-0.132292 -0.809625,-0.132292 -0.407458,0 -0.608541,0.111125 -0.195792,0.105833 -0.195792,0.322792 0,0.142875 0.100542,0.248708 0.105833,0.100542 0.391583,0.211667 0.28575,0.105833 0.836083,0.264583 0.545042,0.153458 0.947209,0.354542 0.407458,0.201083 0.629708,0.53975 0.22225,0.333375 0.22225,0.883708 0,0.613833 -0.365125,1.031875 -0.365125,0.41275 -0.968375,0.619125 -0.60325,0.206375 -1.322917,0.206375 -0.814916,0 -1.439333,-0.232833 -0.624417,-0.232834 -1.063625,-0.613834 L 44.9625,67.093711 q 0.328083,0.254 0.740833,0.423333 0.418042,0.169333 0.910167,0.169333 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path821" />
-      <path
-         d="m 55.768067,68.374294 q -0.328083,0.211667 -0.79375,0.359833 -0.465666,0.148167 -1.047749,0.148167 -1.100667,0 -1.635125,-0.560917 -0.534459,-0.566208 -0.534459,-1.534583 v -2.550583 h -1.180041 v -1.153584 h 1.180041 v -1.217083 l 1.672167,-0.201083 v 1.418166 h 1.80975 l -0.164042,1.153584 h -1.645708 v 2.550583 q 0,0.418042 0.1905,0.597958 0.1905,0.179917 0.608541,0.179917 0.296334,0 0.53975,-0.06879 0.248709,-0.07408 0.4445,-0.185208 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path823" />
-      <path
-         d="m 58.313342,67.702252 q 0,-0.322791 0.15875,-0.587375 0.15875,-0.269875 0.428625,-0.428625 0.269875,-0.164041 0.592667,-0.164041 0.328083,0 0.592667,0.164041 0.269875,0.15875 0.428625,0.428625 0.15875,0.264584 0.15875,0.587375 0,0.3175 -0.15875,0.587375 -0.15875,0.269875 -0.428625,0.428625 -0.264584,0.164042 -0.592667,0.164042 -0.322792,0 -0.592667,-0.164042 -0.269875,-0.15875 -0.428625,-0.428625 -0.15875,-0.269875 -0.15875,-0.587375 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';stroke-width:0.26458332"
-         id="path825" />
-    </g>
-    <rect
-       style="fill:#30363b;fill-opacity:1;stroke:#20262b;stroke-width:0.39205828;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3721"
-       width="54.407944"
-       height="12.607942"
-       x="60.730652"
-       y="71.342285" />
-    <g
-       aria-label="analyzer"
-       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-       id="text3719">
-      <path
-         d="m 68.007281,79.143583 q 0,0.3175 0.08467,0.460375 0.08996,0.142875 0.28575,0.216958 l -0.343959,1.100667 q -0.497416,-0.04762 -0.841375,-0.216959 -0.338666,-0.174625 -0.534458,-0.523875 -0.322792,0.386292 -0.8255,0.576792 -0.502708,0.185208 -1.026583,0.185208 -0.867833,0 -1.386417,-0.492125 -0.513291,-0.497416 -0.513291,-1.275291 0,-0.915459 0.714375,-1.412875 0.719666,-0.497417 2.021416,-0.497417 h 0.756708 v -0.211667 q 0,-0.439208 -0.28575,-0.650875 -0.280458,-0.211666 -0.825499,-0.211666 -0.269875,0 -0.693209,0.07937 -0.423333,0.07408 -0.846666,0.216958 l -0.386292,-1.11125 q 0.545042,-0.206375 1.132417,-0.312208 0.592666,-0.105834 1.058333,-0.105834 1.254125,0 1.852083,0.513292 0.60325,0.508 0.60325,1.471083 z m -2.624666,0.60325 q 0.269875,0 0.566208,-0.15875 0.296333,-0.164042 0.449791,-0.460375 v -0.910167 h -0.412749 q -0.6985,0 -1.026584,0.216958 -0.328083,0.211667 -0.328083,0.624417 0,0.322792 0.195792,0.508 0.201083,0.179917 0.555625,0.179917 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path828" />
-      <path
-         d="m 69.626515,80.762833 v -5.61975 h 1.4605 l 0.116417,0.650875 q 0.375708,-0.423334 0.79375,-0.629709 0.418041,-0.206375 0.9525,-0.206375 0.719666,0 1.132416,0.439209 0.41275,0.439208 0.41275,1.23825 v 4.1275 h -1.672166 v -3.645959 q 0,-0.343958 -0.04762,-0.545041 -0.04763,-0.206375 -0.169334,-0.291042 -0.116416,-0.08996 -0.322791,-0.08996 -0.174625,0 -0.343959,0.07937 -0.164041,0.07408 -0.322791,0.216958 -0.15875,0.142875 -0.3175,0.343958 v 3.931709 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path830" />
-      <path
-         d="m 80.707248,79.143583 q 0,0.3175 0.08467,0.460375 0.08996,0.142875 0.28575,0.216958 l -0.343958,1.100667 q -0.497417,-0.04762 -0.841375,-0.216959 -0.338667,-0.174625 -0.534458,-0.523875 -0.322792,0.386292 -0.8255,0.576792 -0.502709,0.185208 -1.026584,0.185208 -0.867833,0 -1.386416,-0.492125 -0.513292,-0.497416 -0.513292,-1.275291 0,-0.915459 0.714375,-1.412875 0.719667,-0.497417 2.021417,-0.497417 h 0.756708 v -0.211667 q 0,-0.439208 -0.28575,-0.650875 -0.280458,-0.211666 -0.8255,-0.211666 -0.269875,0 -0.693208,0.07937 -0.423334,0.07408 -0.846667,0.216958 l -0.386292,-1.11125 q 0.545042,-0.206375 1.132417,-0.312208 0.592667,-0.105834 1.058333,-0.105834 1.254125,0 1.852084,0.513292 0.603249,0.508 0.603249,1.471083 z m -2.624666,0.60325 q 0.269875,0 0.566208,-0.15875 0.296334,-0.164042 0.449792,-0.460375 v -0.910167 h -0.41275 q -0.6985,0 -1.026583,0.216958 -0.328084,0.211667 -0.328084,0.624417 0,0.322792 0.195792,0.508 0.201083,0.179917 0.555625,0.179917 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path832" />
-      <path
-         d="m 85.258066,72.91 v 6.085416 q 0,0.338667 0.1905,0.486833 0.195792,0.142875 0.534458,0.142875 0.216959,0 0.418042,-0.04762 0.201083,-0.05292 0.375708,-0.121708 l 0.402167,1.116542 q -0.28575,0.148166 -0.687917,0.259291 -0.402166,0.111125 -0.936625,0.111125 -1.016,0 -1.49225,-0.582083 -0.47625,-0.587375 -0.47625,-1.571625 V 74.053 H 81.929608 V 72.91 Z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path834" />
-      <path
-         d="m 93.989299,75.143083 -1.87325,5.61975 q -0.248708,0.746125 -0.661458,1.248833 -0.407458,0.508 -1.021292,0.783167 -0.608541,0.275166 -1.465791,0.322791 l -0.1905,-1.180041 q 0.555625,-0.06879 0.894291,-0.206375 0.343959,-0.137584 0.550334,-0.375709 0.211666,-0.232833 0.365125,-0.592666 h -0.5715 l -1.783292,-5.61975 h 1.767417 l 1.090083,4.550833 1.185333,-4.550833 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path836" />
-      <path
-         d="m 97.021408,79.498124 h 2.815166 l -0.15875,1.264709 h -4.630208 v -1.180042 l 2.788708,-3.180292 h -2.555875 v -1.259416 h 4.503208 v 1.17475 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path838" />
-      <path
-         d="m 102.82635,78.439791 q 0.0582,0.460375 0.23813,0.746125 0.1852,0.280458 0.47095,0.41275 0.28575,0.127 0.6403,0.127 0.38629,0 0.74612,-0.127 0.35983,-0.127 0.69321,-0.338667 l 0.67204,0.910167 q -0.39687,0.338667 -0.96308,0.555625 -0.56092,0.216958 -1.28059,0.216958 -0.96308,0 -1.61395,-0.381 -0.65088,-0.386291 -0.97896,-1.058333 -0.32809,-0.672042 -0.32809,-1.545167 0,-0.830791 0.3175,-1.508125 0.3175,-0.682625 0.92605,-1.084791 0.61383,-0.407459 1.49754,-0.407459 0.80433,0 1.39171,0.343959 0.59266,0.343958 0.91545,0.989541 0.32809,0.645584 0.32809,1.550459 0,0.142875 -0.0106,0.306916 -0.005,0.164042 -0.0212,0.291042 z m 1.03717,-2.360083 q -0.44979,0 -0.72496,0.322791 -0.27517,0.322792 -0.33338,1.031875 h 2.06375 q -0.005,-0.613833 -0.23812,-0.98425 -0.23283,-0.370416 -0.76729,-0.370416 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path840" />
-      <path
-         d="m 107.77933,80.762833 v -1.121834 h 0.74084 v -3.386666 h -0.74084 v -1.11125 h 2.01613 l 0.30692,1.264708 q 0.30162,-0.724958 0.76729,-1.0795 0.47096,-0.354542 1.14829,-0.354542 0.28575,0 0.508,0.04762 0.22225,0.04233 0.41804,0.121709 l -0.508,1.381125 q -0.15346,-0.04233 -0.30692,-0.0635 -0.15345,-0.02117 -0.33866,-0.02117 -0.55034,0 -0.96838,0.449792 -0.41275,0.449791 -0.62971,1.143 v 1.608666 h 1.11125 v 1.121834 z m 3.80471,-3.27025 v -1.640417 l 0.24871,-0.709083 h 1.11125 l -0.31221,2.3495 z"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Fira Code';-inkscape-font-specification:'Fira Code Bold';fill:#ffffff;stroke-width:0.26458332"
-         id="path842" />
-    </g>
-  </g>
-</svg>
diff --git a/crates/hir_def/Cargo.toml b/crates/hir_def/Cargo.toml
index 011e4612ca..a88b5f57ee 100644
--- a/crates/hir_def/Cargo.toml
+++ b/crates/hir_def/Cargo.toml
@@ -33,4 +33,4 @@ cfg = { path = "../cfg", version = "0.0.0" }
 tt = { path = "../tt", version = "0.0.0" }
 
 [dev-dependencies]
-expect-test = "0.1"
+expect-test = "1.0"
diff --git a/crates/hir_ty/Cargo.toml b/crates/hir_ty/Cargo.toml
index 33e155a70b..47940c36e7 100644
--- a/crates/hir_ty/Cargo.toml
+++ b/crates/hir_ty/Cargo.toml
@@ -31,7 +31,7 @@ syntax = { path = "../syntax", version = "0.0.0" }
 test_utils = { path = "../test_utils", version = "0.0.0" }
 
 [dev-dependencies]
-expect-test = "0.1"
+expect-test = "1.0"
 tracing = "0.1"
 tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] }
 tracing-tree = { version = "0.1.4" }
diff --git a/crates/ide/Cargo.toml b/crates/ide/Cargo.toml
index a15f704ca4..f0257403d2 100644
--- a/crates/ide/Cargo.toml
+++ b/crates/ide/Cargo.toml
@@ -36,4 +36,4 @@ ssr = { path = "../ssr", version = "0.0.0" }
 hir = { path = "../hir", version = "0.0.0" }
 
 [dev-dependencies]
-expect-test = "0.1"
+expect-test = "1.0"
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml
index 044686a99f..e06956d6c6 100644
--- a/crates/rust-analyzer/Cargo.toml
+++ b/crates/rust-analyzer/Cargo.toml
@@ -58,7 +58,7 @@ proc_macro_srv = { path = "../proc_macro_srv", version = "0.0.0" }
 winapi = "0.3.8"
 
 [dev-dependencies]
-expect-test = "0.1"
+expect-test = "1.0"
 test_utils = { path = "../test_utils" }
 mbe = { path = "../mbe" }
 tt = { path = "../tt" }
diff --git a/crates/rust-analyzer/test_data/clippy_pass_by_ref.txt b/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/clippy_pass_by_ref.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt
diff --git a/crates/rust-analyzer/test_data/handles_macro_location.txt b/crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/handles_macro_location.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt
diff --git a/crates/rust-analyzer/test_data/macro_compiler_error.txt b/crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/macro_compiler_error.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt
diff --git a/crates/rust-analyzer/test_data/rustc_incompatible_type_for_trait.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_incompatible_type_for_trait.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt
diff --git a/crates/rust-analyzer/test_data/rustc_mismatched_type.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_mismatched_type.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_unused_variable.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt
diff --git a/crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt
diff --git a/crates/rust-analyzer/test_data/rustc_wrong_number_of_parameters.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/rustc_wrong_number_of_parameters.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt
diff --git a/crates/rust-analyzer/test_data/snap_multi_line_fix.txt b/crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt
similarity index 100%
rename from crates/rust-analyzer/test_data/snap_multi_line_fix.txt
rename to crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs
index e52b97913a..f69a949f21 100644
--- a/crates/rust-analyzer/src/diagnostics/to_proto.rs
+++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs
@@ -315,7 +315,7 @@ mod tests {
                 "rendered": "error[E0053]: method `next` has an incompatible type for trait\n  --> compiler/ty/list_iter.rs:52:5\n   |\n52 |     fn next(&self) -> Option<&'list ty::Ref<M>> {\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability\n   |\n   = note: expected type `fn(&mut ty::list_iter::ListIterator<'list, M>) -> std::option::Option<&ty::Ref<M>>`\n              found type `fn(&ty::list_iter::ListIterator<'list, M>) -> std::option::Option<&'list ty::Ref<M>>`\n\n"
             }
             "##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_incompatible_type_for_trait.txt"],
+            expect_file!["./test_data/rustc_incompatible_type_for_trait.txt"],
         );
     }
 
@@ -394,7 +394,7 @@ mod tests {
     ],
     "rendered": "warning: unused variable: `foo`\n   --> driver/subcommand/repl.rs:291:9\n    |\n291 |     let foo = 42;\n    |         ^^^ help: consider prefixing with an underscore: `_foo`\n    |\n    = note: #[warn(unused_variables)] on by default\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_unused_variable.txt"],
+            expect_file!["./test_data/rustc_unused_variable.txt"],
         );
     }
 
@@ -478,7 +478,7 @@ mod tests {
     ],
     "rendered": "warning: unused variable: `foo`\n   --> driver/subcommand/repl.rs:291:9\n    |\n291 |     let foo = 42;\n    |         ^^^ help: consider prefixing with an underscore: `_foo`\n    |\n    = note: #[warn(unused_variables)] on by default\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_unused_variable_as_info.txt"],
+            expect_file!["./test_data/rustc_unused_variable_as_info.txt"],
         );
     }
 
@@ -562,7 +562,7 @@ mod tests {
     ],
     "rendered": "warning: unused variable: `foo`\n   --> driver/subcommand/repl.rs:291:9\n    |\n291 |     let foo = 42;\n    |         ^^^ help: consider prefixing with an underscore: `_foo`\n    |\n    = note: #[warn(unused_variables)] on by default\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_unused_variable_as_hint.txt"],
+            expect_file!["./test_data/rustc_unused_variable_as_hint.txt"],
         );
     }
 
@@ -683,7 +683,7 @@ mod tests {
     "children": [],
     "rendered": "error[E0061]: this function takes 2 parameters but 3 parameters were supplied\n   --> compiler/ty/select.rs:104:18\n    |\n104 |               self.add_evidence(target_fixed, evidence_fixed, false);\n    |                    ^^^^^^^^^^^^ expected 2 parameters\n...\n219 | /     pub fn add_evidence(\n220 | |         &mut self,\n221 | |         target_poly: &ty::Ref<ty::Poly>,\n222 | |         evidence_poly: &ty::Ref<ty::Poly>,\n...   |\n230 | |         }\n231 | |     }\n    | |_____- defined here\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_wrong_number_of_parameters.txt"],
+            expect_file!["./test_data/rustc_wrong_number_of_parameters.txt"],
         );
     }
 
@@ -800,7 +800,7 @@ mod tests {
     ],
     "rendered": "warning: this argument is passed by reference, but would be more efficient if passed by value\n  --> compiler/mir/tagset.rs:42:24\n   |\n42 |     pub fn is_disjoint(&self, other: Self) -> bool {\n   |                        ^^^^^ help: consider passing by value instead: `self`\n   |\nnote: lint level defined here\n  --> compiler/lib.rs:1:9\n   |\n1  | #![warn(clippy::all)]\n   |         ^^^^^^^^^^^\n   = note: #[warn(clippy::trivially_copy_pass_by_ref)] implied by #[warn(clippy::all)]\n   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/clippy_pass_by_ref.txt"],
+            expect_file!["./test_data/clippy_pass_by_ref.txt"],
         );
     }
 
@@ -840,7 +840,7 @@ mod tests {
     "children": [],
     "rendered": "error[E0308]: mismatched types\n  --> runtime/compiler_support.rs:48:65\n   |\n48 |     let layout = alloc::Layout::from_size_align_unchecked(size, align);\n   |                                                                 ^^^^^ expected usize, found u32\n\n"
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/rustc_mismatched_type.txt"],
+            expect_file!["./test_data/rustc_mismatched_type.txt"],
         );
     }
 
@@ -1108,7 +1108,7 @@ mod tests {
         }
     ]
     }"##,
-            expect_file!["crates/rust-analyzer/test_data/handles_macro_location.txt"],
+            expect_file!["./test_data/handles_macro_location.txt"],
         );
     }
 
@@ -1334,7 +1334,7 @@ mod tests {
         ]
     }
             "##,
-            expect_file!["crates/rust-analyzer/test_data/macro_compiler_error.txt"],
+            expect_file!["./test_data/macro_compiler_error.txt"],
         );
     }
 
@@ -1464,7 +1464,7 @@ mod tests {
                 ]
             }
             "##,
-            expect_file!["crates/rust-analyzer/test_data/snap_multi_line_fix.txt"],
+            expect_file!["./test_data/snap_multi_line_fix.txt"],
         );
     }
 }
diff --git a/crates/ssr/Cargo.toml b/crates/ssr/Cargo.toml
index 6f0f53d705..408140014b 100644
--- a/crates/ssr/Cargo.toml
+++ b/crates/ssr/Cargo.toml
@@ -22,4 +22,4 @@ hir = { path = "../hir", version = "0.0.0" }
 test_utils = { path = "../test_utils", version = "0.0.0" }
 
 [dev-dependencies]
-expect-test = "0.1"
+expect-test = "1.0"
diff --git a/crates/syntax/Cargo.toml b/crates/syntax/Cargo.toml
index 2c1bdb2957..af61bb6585 100644
--- a/crates/syntax/Cargo.toml
+++ b/crates/syntax/Cargo.toml
@@ -30,6 +30,6 @@ parser = { path = "../parser", version = "0.0.0" }
 [dev-dependencies]
 walkdir = "2.3.1"
 rayon = "1"
-expect-test = "0.1"
+expect-test = "1.0"
 
 test_utils = { path = "../test_utils" }


Test patch:
diff --git a/crates/ide/test_data/highlight_doctest.html b/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html
similarity index 100%
rename from crates/ide/test_data/highlight_doctest.html
rename to crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html
diff --git a/crates/ide/test_data/highlight_extern_crate.html b/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html
similarity index 100%
rename from crates/ide/test_data/highlight_extern_crate.html
rename to crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html
diff --git a/crates/ide/test_data/highlight_injection.html b/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html
similarity index 100%
rename from crates/ide/test_data/highlight_injection.html
rename to crates/ide/src/syntax_highlighting/test_data/highlight_injection.html
diff --git a/crates/ide/test_data/highlight_strings.html b/crates/ide/src/syntax_highlighting/test_data/highlight_strings.html
similarity index 100%
rename from crates/ide/test_data/highlight_strings.html
rename to crates/ide/src/syntax_highlighting/test_data/highlight_strings.html
diff --git a/crates/ide/test_data/highlight_unsafe.html b/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html
similarity index 100%
rename from crates/ide/test_data/highlight_unsafe.html
rename to crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html
diff --git a/crates/ide/test_data/highlighting.html b/crates/ide/src/syntax_highlighting/test_data/highlighting.html
similarity index 100%
rename from crates/ide/test_data/highlighting.html
rename to crates/ide/src/syntax_highlighting/test_data/highlighting.html
diff --git a/crates/ide/test_data/rainbow_highlighting.html b/crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html
similarity index 100%
rename from crates/ide/test_data/rainbow_highlighting.html
rename to crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html
diff --git a/crates/ide/src/syntax_highlighting/tests.rs b/crates/ide/src/syntax_highlighting/tests.rs
index 1c3fea0588..6f72a29bdc 100644
--- a/crates/ide/src/syntax_highlighting/tests.rs
+++ b/crates/ide/src/syntax_highlighting/tests.rs
@@ -144,7 +144,7 @@ impl<T> Option<T> {
 }
 "#
         .trim(),
-        expect_file!["crates/ide/test_data/highlighting.html"],
+        expect_file!["./test_data/highlighting.html"],
         false,
     );
 }
@@ -167,7 +167,7 @@ fn bar() {
 }
 "#
         .trim(),
-        expect_file!["crates/ide/test_data/rainbow_highlighting.html"],
+        expect_file!["./test_data/rainbow_highlighting.html"],
         true,
     );
 }
@@ -220,7 +220,7 @@ fn main() {
     );
 }"##
         .trim(),
-        expect_file!["crates/ide/test_data/highlight_injection.html"],
+        expect_file!["./test_data/highlight_injection.html"],
         false,
     );
 }
@@ -303,7 +303,7 @@ fn main() {
     println!("{ничоси}", ничоси = 92);
 }"#
         .trim(),
-        expect_file!["crates/ide/test_data/highlight_strings.html"],
+        expect_file!["./test_data/highlight_strings.html"],
         false,
     );
 }
@@ -376,7 +376,7 @@ fn main() {
 }
 "#
         .trim(),
-        expect_file!["crates/ide/test_data/highlight_unsafe.html"],
+        expect_file!["./test_data/highlight_unsafe.html"],
         false,
     );
 }
@@ -452,7 +452,7 @@ macro_rules! noop {
 }
 "#
         .trim(),
-        expect_file!["crates/ide/test_data/highlight_doctest.html"],
+        expect_file!["./test_data/highlight_doctest.html"],
         false,
     );
 }
@@ -469,7 +469,7 @@ fn test_extern_crate() {
         //- /alloc/lib.rs
         pub struct A
         "#,
-        expect_file!["crates/ide/test_data/highlight_extern_crate.html"],
+        expect_file!["./test_data/highlight_extern_crate.html"],
         false,
     );
 }