code: function resolveReflectiveFactory(provider) {
      var /** @type {?} */ factoryFn;
      var /** @type {?} */ resolvedDeps;
      if (provider.useClass) {
          var /** @type {?} */ useClass = resolveForwardRef(provider.useClass);
          factoryFn = reflector.factory(useClass);
          resolvedDeps = _dependenciesFor(useClass);
      }
      else if (provider.useExisting) {
          factoryFn = function (aliasInstance) { return aliasInstance; };
          resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))];
      }
      else if (provider.useFactory) {
          factoryFn = provider.useFactory;
          resolvedDeps = constructDependencies(provider.useFactory, provider.deps);
      }
      else {
          factoryFn = function () { return provider.useValue; };
          resolvedDeps = _EMPTY_LIST;
      }
      return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);
  }
docs: Resolve a single provider.
  @param {?} provider
  @return {?}