Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/validation.rs')
-rw-r--r--crates/syntax/src/validation.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/syntax/src/validation.rs b/crates/syntax/src/validation.rs
index 485140be8f..4622590656 100644
--- a/crates/syntax/src/validation.rs
+++ b/crates/syntax/src/validation.rs
@@ -240,8 +240,16 @@ fn validate_numeric_name(name_ref: Option<ast::NameRef>, errors: &mut Vec<Syntax
}
fn validate_visibility(vis: ast::Visibility, errors: &mut Vec<SyntaxError>) {
- let path_without_in_token = vis.in_token().is_none()
- && vis.path().and_then(|p| p.as_single_name_ref()).and_then(|n| n.ident_token()).is_some();
+ let path_without_in_token = if let Some(inner) = vis.visibility_inner() {
+ inner.in_token().is_none()
+ && inner
+ .path()
+ .and_then(|p| p.as_single_name_ref())
+ .and_then(|n| n.ident_token())
+ .is_some()
+ } else {
+ false
+ };
if path_without_in_token {
errors.push(SyntaxError::new("incorrect visibility restriction", vis.syntax.text_range()));
}