summaryrefslogtreecommitdiffstats
path: root/src/test/ui/resolve/resolve-speculative-adjustment.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/resolve/resolve-speculative-adjustment.rs')
-rw-r--r--src/test/ui/resolve/resolve-speculative-adjustment.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/resolve/resolve-speculative-adjustment.rs b/src/test/ui/resolve/resolve-speculative-adjustment.rs
new file mode 100644
index 000000000..81f757829
--- /dev/null
+++ b/src/test/ui/resolve/resolve-speculative-adjustment.rs
@@ -0,0 +1,30 @@
+// Make sure speculative path resolution works properly when resolution
+// adjustment happens and no extra errors is reported.
+
+struct S {
+ field: u8,
+}
+
+trait Tr {
+ fn method(&self);
+}
+
+impl Tr for S {
+ fn method(&self) {
+ fn g() {
+ // Speculative resolution of `Self` and `self` silently fails,
+ // "did you mean" messages are not printed.
+ field;
+ //~^ ERROR cannot find value `field`
+ method();
+ //~^ ERROR cannot find function `method`
+ }
+
+ field;
+ //~^ ERROR cannot find value `field`
+ method();
+ //~^ ERROR cannot find function `method`
+ }
+}
+
+fn main() {}