Ignore:
Timestamp:
Jun 28, 2008, 8:17:17 PM (16 years ago)
Author:
dai_9181
Message:

NamespaceScopes::IsEqualを高速化した(他、リファクタリング)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/src/Lexical/NamespaceSupporter.cpp

    r516 r669  
    2121    return ImportsNamespace( namespaceScopes );
    2222}
     23
     24bool NamespaceSupporter::IsSameAreaNamespace( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ) const
     25{
     26    if( entryNamespaceScopes.size() )
     27    {
     28        if( IsCoverd( baseNamespaceScopes, entryNamespaceScopes ) )
     29        {
     30            // 包括しているときは同一と見なす
     31            return true;
     32        }
     33    }
     34    else{
     35        if( baseNamespaceScopes.size() )
     36        {
     37            // 名前空間の判断が必要なとき
     38            if( this->importedNamespaces.IsImported( baseNamespaceScopes )
     39                || IsLiving( baseNamespaceScopes ) )
     40            {
     41                // Using指定があるとき
     42                // または
     43                // 指定された名前空間が現在の名前空間スコープと同一のとき
     44                return true;
     45            }
     46        }
     47        else{
     48            return true;
     49        }
     50    }
     51
     52    return false;
     53}
Note: See TracChangeset for help on using the changeset viewer.