static void ResolveSelectExpression(IASTNode node) { // This is called when it's time to fully resolve a path expression. int type = node.Type; switch (type) { case DOT: DotNode dot = (DotNode)node; dot.ResolveSelectExpression(); break; case ALIAS_REF: // Notify the FROM element that it is being referenced by the select. FromReferenceNode aliasRefNode = (FromReferenceNode)node; aliasRefNode.Resolve(false, false); //TODO: is it kosher to do it here? FromElement fromElement = aliasRefNode.FromElement; if (fromElement != null) { fromElement.IncludeSubclasses = true; } break; default: break; } }