forked from qt-creator/qt-creator
		
	Check the scope of class and fwd-class declarations
This commit is contained in:
		| @@ -166,6 +166,26 @@ protected: | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     bool checkScope(Symbol *symbol, Symbol *otherSymbol) const | ||||
|     { | ||||
|         if (! (symbol && otherSymbol)) | ||||
|             return false; | ||||
|  | ||||
|         else if (symbol->scope() == otherSymbol->scope()) | ||||
|             return true; | ||||
|  | ||||
|         else if (symbol->name() && otherSymbol->name()) { | ||||
|  | ||||
|             if (! symbol->name()->isEqualTo(otherSymbol->name())) | ||||
|                 return false; | ||||
|  | ||||
|         } else if (symbol->name() != otherSymbol->name()) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         return checkScope(symbol->enclosingSymbol(), otherSymbol->enclosingSymbol()); | ||||
|     } | ||||
|  | ||||
|     bool isDeclSymbol(Symbol *symbol) const | ||||
|     { | ||||
|         if (! symbol) | ||||
| @@ -180,11 +200,11 @@ protected: | ||||
|  | ||||
|         } else if (symbol->isForwardClassDeclaration() && (_declSymbol->isClass() || | ||||
|                                                            _declSymbol->isForwardClassDeclaration())) { | ||||
|             return true; | ||||
|             return checkScope(symbol, _declSymbol); | ||||
|  | ||||
|         } else if (_declSymbol->isForwardClassDeclaration() && (symbol->isClass() || | ||||
|                                                                 symbol->isForwardClassDeclaration())) { | ||||
|             return true; | ||||
|             return checkScope(symbol, _declSymbol); | ||||
|         } | ||||
|  | ||||
|         return false; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user