@Override public void addExpressionScope(ResolvedTypes current, EObject context, IFeatureScopeSession session, Anchor anchor) { EnumMap<Anchor, ExpressionScope> recordedScopes = featureScopeSessions.get(context); if (recordedScopes == null) { recordedScopes = Maps.newEnumMap(Anchor.class); featureScopeSessions.put(context, recordedScopes); } ExpressionScope scope = recordedScopes.get(anchor); if (scope == null) { scope = new ExpressionScope(current.getResolver().getFeatureScopes(), context, anchor, current.getReferenceOwner()); recordedScopes.put(anchor, scope); } scope.addData(session, current.withFlattenedReassignedTypes()); }