Bug 548245: [R-Editor] Fix Open Declaration for element references with
sub name

Change-Id: I46a488fc8424c195d27d2c24fd01238a16e37e97
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RModel.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RModel.java
index b30664e..fe8a69d 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RModel.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RModel.java
@@ -238,6 +238,10 @@
 		assert (access != null);
 		final List<ISourceElement> list= new ArrayList<>();
 		
+		if (access.getSegmentName() == null) {
+			return list;
+		}
+		
 		final IRFrame suFrame= access.getFrame();
 		final List<IRFrame> directFrames= RModel.createDirectFrameList(suFrame);
 		for (final IRFrame frame : directFrames) {
@@ -258,7 +262,9 @@
 		final List<? extends IRElement> elements= frame.getModelChildren(null);
 		for (final IRElement element : elements) {
 			final RElementName name= element.getElementName();
-			if (name != null && name.equals(access)
+			if (name != null
+					&& access.getType() == name.getType()
+					&& access.getSegmentName().equals(name.getSegmentName())
 					&& element instanceof ISourceElement) {
 				list.add((ISourceElement) element);
 			}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/ROpenDeclarationHandler.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/ROpenDeclarationHandler.java
index 690fcca..ab1ccc6 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/ROpenDeclarationHandler.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/ROpenDeclarationHandler.java
@@ -48,6 +48,7 @@
 	
 	
 	public static RElementAccess searchAccess(final ISourceEditor editor, final IRegion region) {
+		// not for sub elements
 		try {
 			final IDocument document= editor.getViewer().getDocument();
 			final RHeuristicTokenScanner scanner= RHeuristicTokenScanner.create(