浏览代码

Correct `//+private` for `odin doc`

gingerBill 3 年之前
父节点
当前提交
cafb6e5587
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      src/checker.cpp

+ 7 - 0
src/checker.cpp

@@ -3446,6 +3446,13 @@ void check_collect_value_decl(CheckerContext *c, Ast *decl) {
 		}
 		}
 	}
 	}
 
 
+	if (entity_visibility_kind == EntityVisiblity_Public &&
+	    (c->scope->flags&ScopeFlag_File) &&
+	    c->scope->file &&
+	    (c->scope->file->flags & AstFile_IsPrivate)) {
+		entity_visibility_kind = EntityVisiblity_PrivateToPackage;
+	}
+
 	if (entity_visibility_kind != EntityVisiblity_Public && !(c->scope->flags&ScopeFlag_File)) {
 	if (entity_visibility_kind != EntityVisiblity_Public && !(c->scope->flags&ScopeFlag_File)) {
 		error(decl, "Attribute 'private' is not allowed on a non file scope entity");
 		error(decl, "Attribute 'private' is not allowed on a non file scope entity");
 	}
 	}