protected ILocationData getLocationWithTypeArguments(XAbstractFeatureCall call) {
		final ICompositeNode startNode = NodeModelUtils.getNode(call);
		if (startNode != null) {
			List<INode> resultNodes = Lists.newArrayList();
			if (call instanceof XFeatureCall) {
				for (INode child : startNode.getChildren()) {
					resultNodes.add(child);
				}
			} else if (call instanceof XMemberFeatureCall) {
				boolean keywordSeen = false;
				for (INode child : startNode.getChildren()) {
					if (keywordSeen) {
						resultNodes.add(child);
					} else {
						EObject grammarElement = child.getGrammarElement();
						if (grammarElement instanceof Keyword) {
							keywordSeen = true;
						}
					}
				}
			}
			return toLocationData(resultNodes);
		}
		return null;
	}
protected ILocationData getLocationWithTypeArguments ( XAbstractFeatureCall call ) { final ICompositeNode startNode = NodeModelUtils . getNode ( call ) ; if ( startNode != null ) { List < INode > resultNodes = Lists . newArrayList ( ) ; if ( call instanceof XFeatureCall ) { for ( INode child : startNode . getChildren ( ) ) { resultNodes . add ( child ) ; } } else if ( call instanceof XMemberFeatureCall ) { boolean keywordSeen = false ; for ( INode child : startNode . getChildren ( ) ) { if ( keywordSeen ) { resultNodes . add ( child ) ; } else { EObject grammarElement = child . getGrammarElement ( ) ; if ( grammarElement instanceof Keyword ) { keywordSeen = true ; } } } } return toLocationData ( resultNodes ) ; } return null ; }
/* @Nullable