diff options
author | Muhammad Mahad <mahadtxt@gmail.com> | 2023-09-03 11:13:53 +0500 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 19:04:31 +0100 |
commit | 1e4553be001fab0836d82ca4322af6d6c655c0fd (patch) | |
tree | 1f541058b24b463d3dcf22b14522213d3d41f3e2 /gcc | |
parent | fe97255c29024535e8c49663a4abb8d419073ab1 (diff) | |
download | gcc-1e4553be001fab0836d82ca4322af6d6c655c0fd.zip gcc-1e4553be001fab0836d82ca4322af6d6c655c0fd.tar.gz gcc-1e4553be001fab0836d82ca4322af6d6c655c0fd.tar.bz2 |
gccrs: [E0603] Use of private item outside scope
gcc/rust/ChangeLog:
* checks/errors/privacy/rust-privacy-reporter.cc
(PrivacyReporter::check_for_privacy_violation):
Added errorcode & richlocation.
gcc/testsuite/ChangeLog:
* rust/compile/privacy1.rs: Added errorcode.
* rust/compile/privacy3.rs: likewise.
* rust/compile/privacy4.rs: likewise.
* rust/compile/privacy5.rs: likewise.
Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc | 7 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/privacy1.rs | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/privacy3.rs | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/privacy4.rs | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/privacy5.rs | 2 |
5 files changed, 10 insertions, 5 deletions
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc index 2c9f4b7..7c3b414 100644 --- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc +++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc @@ -166,7 +166,12 @@ PrivacyReporter::check_for_privacy_violation (const NodeId &use_id, } if (!valid) - rust_error_at (locus, "definition is private in this context"); + { + rich_location richloc (line_table, locus); + richloc.add_fixit_replace ("item is private"); + rust_error_at (richloc, ErrorCode::E0603, + "definition is private in this context"); + } } void diff --git a/gcc/testsuite/rust/compile/privacy1.rs b/gcc/testsuite/rust/compile/privacy1.rs index 1cc83c0..61a2ae9 100644 --- a/gcc/testsuite/rust/compile/privacy1.rs +++ b/gcc/testsuite/rust/compile/privacy1.rs @@ -4,7 +4,7 @@ mod orange { pub fn doux() {} } - fn brown() { + fn brown() {// E0603 green::sain(); // { dg-error "definition is private in this context" } green::doux(); } diff --git a/gcc/testsuite/rust/compile/privacy3.rs b/gcc/testsuite/rust/compile/privacy3.rs index d48acea..8c8c199 100644 --- a/gcc/testsuite/rust/compile/privacy3.rs +++ b/gcc/testsuite/rust/compile/privacy3.rs @@ -8,7 +8,7 @@ mod orange { } fn brown() { - if green::sain() { + if green::sain() {// E0603 // { dg-error "definition is private in this context" "" { target *-*-* } .-1 } green::doux(); } diff --git a/gcc/testsuite/rust/compile/privacy4.rs b/gcc/testsuite/rust/compile/privacy4.rs index 648b7b9..7865f6a 100644 --- a/gcc/testsuite/rust/compile/privacy4.rs +++ b/gcc/testsuite/rust/compile/privacy4.rs @@ -8,7 +8,7 @@ mod orange { } } - fn brown() { + fn brown() {// E0603 green::bean::<bool>(false); // { dg-error "definition is private in this context" "" { target *-*-* } .-1 } let a = green::bean::<i32>(15); diff --git a/gcc/testsuite/rust/compile/privacy5.rs b/gcc/testsuite/rust/compile/privacy5.rs index 0e0e496..16445dd 100644 --- a/gcc/testsuite/rust/compile/privacy5.rs +++ b/gcc/testsuite/rust/compile/privacy5.rs @@ -5,7 +5,7 @@ mod orange { pub struct Baz; } - fn brown() { + fn brown() {// E0603 let _ = green::Foo; // { dg-error "definition is private in this context" } let _ = green::Bar; let _ = green::Baz; |