@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());
}