Advertisement
Guest User

ResolveType

a guest
Feb 10th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.23 KB | None | 0 0
  1. private IEnumerable<Declaration> CurrentScopeDeclarations()
  2. {
  3.     return _declarations.Where(item =>
  4.         item.DeclarationType == DeclarationType.UserDefinedType
  5.         && item.Project == _currentScope.Project
  6.         && item.ComponentName == _currentScope.ComponentName);
  7. }
  8.  
  9. private IEnumerable<Declaration> CurrentProjectDeclarations()
  10. {
  11.     return _declarations.Where(item =>
  12.         _moduleTypes.Contains(item.DeclarationType)
  13.         && item.Project == _currentScope.Project);
  14. }
  15.  
  16. private IEnumerable<Declaration> CurrentModuleDeclarations()
  17. {
  18.     return _declarations.Where(item =>
  19.         _moduleTypes.Contains(item.DeclarationType));
  20. }
  21.  
  22. private Declaration ResolveType(Declaration parent)
  23. {
  24.     if (parent == null || parent.AsTypeName == null)
  25.         return null;
  26.  
  27.     var identifier = parent.AsTypeName.Split('.').Last();
  28.     var declarationIsIdentifierPredicate = new Func<Declaration, bool>(d => d.IdentifierName == identifier);
  29.  
  30.     return
  31.         CurrentScopeDeclarations().SingleOrDefault(declarationIsIdentifierPredicate) ??
  32.         CurrentProjectDeclarations().SingleOrDefault(declarationIsIdentifierPredicate) ??
  33.         CurrentModuleDeclarations().SingleOrDefault(declarationIsIdentifierPredicate);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement