From 14764896c34b230a5563f48d8b8e565de2f3aa10 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 2 Feb 2024 22:28:02 -0800 Subject: Capability type checking. (#3530) * Capability type checking. * Fix. --------- Co-authored-by: Yong He --- source/slang/slang-check-expr.cpp | 53 ++------------------------------------- 1 file changed, 2 insertions(+), 51 deletions(-) (limited to 'source/slang/slang-check-expr.cpp') diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp index e5e990fe5..f9adcc91a 100644 --- a/source/slang/slang-check-expr.cpp +++ b/source/slang/slang-check-expr.cpp @@ -62,7 +62,7 @@ namespace Slang { VarDecl* varDecl = m_astBuilder->create(); varDecl->parentDecl = nullptr; // TODO: need to fill this in somehow! - varDecl->checkState = DeclCheckState::Checked; + varDecl->checkState = DeclCheckState::DefinitionChecked; varDecl->nameAndLoc.loc = expr->loc; varDecl->initExpr = expr; varDecl->type.type = expr->type.type; @@ -827,55 +827,6 @@ namespace Slang } } - DeclVisibility SemanticsVisitor::getDeclVisibility(Decl* decl) - { - if (as(decl) || as(decl) || as(decl)) - { - auto genericDecl = as(decl->parentDecl); - if (!genericDecl) - return DeclVisibility::Default; - if (genericDecl->inner) - return getDeclVisibility(genericDecl->inner); - return DeclVisibility::Default; - } - if (auto genericDecl = as(decl)) - decl = genericDecl->inner; - for (; decl; decl = getParentDecl(decl)) - { - if (as(decl)) - continue; - if (as(decl)) - continue; - break; - } - if (!decl) - return DeclVisibility::Public; - - for (auto modifier : decl->modifiers) - { - if (as(modifier)) - return DeclVisibility::Public; - else if (as(modifier)) - return DeclVisibility::Internal; - else if (as(modifier)) - return DeclVisibility::Private; - } - - // Interface members will always have the same visibility as the interface itself. - if (auto interfaceDecl = findParentInterfaceDecl(decl)) - { - return getDeclVisibility(interfaceDecl); - } - else if (as(decl)) - { - return DeclVisibility::Public; - } - if (auto parentModule = getModuleDecl(decl)) - return parentModule->isInLegacyLanguage ? DeclVisibility::Public : DeclVisibility::Internal; - - return DeclVisibility::Default; - } - DeclVisibility SemanticsVisitor::getTypeVisibility(Type* type) { if (auto declRefType = as(type)) @@ -1721,7 +1672,7 @@ namespace Slang if (!getInitExpr(m_astBuilder, declRef)) return nullptr; - ensureDecl(declRef.getDecl(), DeclCheckState::Checked); + ensureDecl(declRef.getDecl(), DeclCheckState::DefinitionChecked); ConstantFoldingCircularityInfo newCircularityInfo(decl, circularityInfo); return tryConstantFoldExpr(getInitExpr(m_astBuilder, declRef), &newCircularityInfo); } -- cgit v1.2.3