protected AbstractReentrantTypeReferenceProvider createTypeProvider(
Map<JvmIdentifiableElement, ResolvedTypes> resolvedTypesByContext, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmMember member,
XExpression expression, boolean returnType) {
if (expression != null) {
markToBeInferred(resolvedTypes, expression);
return new DemandTypeReferenceProvider(member, expression, resolvedTypesByContext, resolvedTypes, featureScopeSession, returnType);
}
return new AnyTypeReferenceProvider(member, resolvedTypes, this);
}