protected List<IJvmFeatureDescriptionProvider> getFeatureDescriptionProviders( JvmTypeReference type, EObject expression, JvmDeclaredType currentContext, XExpression implicitReceiver) { DefaultJvmFeatureDescriptionProvider provider1 = newDefaultFeatureDescProvider(); XFeatureCallSugarDescriptionProvider provider2 = newSugarDescriptionProvider(); StaticMethodsFeatureForTypeProvider staticExtensionsProvider = newImplicitStaticFeaturesProvider(); staticExtensionsProvider.setContext(expression.eResource()); staticExtensionsProvider.setExtensionProvider(true); DefaultJvmFeatureDescriptionProvider provider3 = newDefaultFeatureDescProvider(); provider3.setFeaturesForTypeProvider(staticExtensionsProvider); XFeatureCallSugarDescriptionProvider provider4 = newSugarDescriptionProvider(); provider4.setFeaturesForTypeProvider(staticExtensionsProvider); provider1.setContextType(currentContext); provider1.setImplicitReceiver(implicitReceiver); provider2.setContextType(currentContext); provider2.setImplicitReceiver(implicitReceiver); provider3.setContextType(currentContext); provider3.setImplicitReceiver(implicitReceiver); provider4.setContextType(currentContext); provider4.setImplicitReceiver(implicitReceiver); List<IJvmFeatureDescriptionProvider> result = Lists.<IJvmFeatureDescriptionProvider>newArrayList( provider1, provider2, provider3, provider4); return result; }