static ResolvableType forType(Type type, TypeProvider typeProvider, VariableResolver variableResolver) {
        if (type == null && typeProvider != null) {
            type = TypeWrapper.forTypeProvider(typeProvider);
        }
        if (type == null) {
            return NONE;
        }

        // For simple Class references, build the wrapper right away -
        // no expensive resolution necessary, so not worth caching...
        if (type instanceof Class) {
            return new ResolvableType(type, typeProvider, variableResolver, null);
        }

        return new ResolvableType(type, typeProvider, variableResolver);
    }
static ResolvableType forType ( Type type , TypeProvider typeProvider , VariableResolver variableResolver ) { if ( type == null && typeProvider != null ) { type = TypeWrapper . forTypeProvider ( typeProvider ) ; } if ( type == null ) { return NONE ; } if ( type instanceof Class ) { return new ResolvableType ( type , typeProvider , variableResolver , null ) ; } return new ResolvableType ( type , typeProvider , variableResolver ) ; }
Return a {@link ResolvableType} for the specified {@link Type} backed by a given {@link VariableResolver}.

@param type the source type or {@code null}
@param typeProvider the type provider or {@code null}
@param variableResolver the variable resolver or {@code null}
@return a {@link ResolvableType} for the specified {@link Type} and {@link VariableResolver}