Просмотр исходного кода

Returning SimpleScope instead of FilteringScope (#1619)

This fixes Yakindu/sctpro#1150
jthoene 8 лет назад
Родитель
Сommit
98f588a9c7

+ 15 - 13
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/scoping/SGenScopeProvider.java

@@ -76,20 +76,22 @@ public class SGenScopeProvider extends AbstractDeclarativeScopeProvider {
 		if (desc == null)
 		if (desc == null)
 			return IScope.NULLSCOPE;
 			return IScope.NULLSCOPE;
 		final String elementRefType = desc.getElementRefType();
 		final String elementRefType = desc.getElementRefType();
-		return new FilteringScope(getDelegate().getScope(context, reference),
-				new Predicate<IEObjectDescription>() {
-					public boolean apply(IEObjectDescription input) {
-
-						EList<EClass> allSuperTypes = input.getEClass()
-								.getESuperTypes();
-						for (EClass eClass : allSuperTypes) {
-							if (elementRefType.equals(eClass.getInstanceClassName()))
-								return true;
-						}
-						return elementRefType.equals(input.getEClass()
-								.getInstanceClassName());
+		IScope scope = new FilteringScope(getDelegate().getScope(context, reference),
+			new Predicate<IEObjectDescription>() {
+				public boolean apply(IEObjectDescription input) {
+
+					EList<EClass> allSuperTypes = input.getEClass()
+							.getESuperTypes();
+					for (EClass eClass : allSuperTypes) {
+						if (elementRefType.equals(eClass.getInstanceClassName()))
+							return true;
 					}
 					}
-				});
+					return elementRefType.equals(input.getEClass()
+							.getInstanceClassName());
+				}
+			});
+		return new SimpleScope(scope.getAllElements());
+		
 	}
 	}
 
 
 	protected IScope scope_Parameter(final EObject context, EReference reference) {
 	protected IScope scope_Parameter(final EObject context, EReference reference) {