code: function couldContainTypeParameters(type) {
              return !!(type.flags & 16384 /* TypeParameter */ ||
                  type.flags & 131072 /* Reference */ && ts.forEach(type.typeArguments, couldContainTypeParameters) ||
                  type.flags & 2097152 /* Anonymous */ && type.symbol && type.symbol.flags & (8192 /* Method */ | 2048 /* TypeLiteral */ | 32 /* Class */) ||
                  type.flags & 1572864 /* UnionOrIntersection */ && couldUnionOrIntersectionContainTypeParameters(type));
          }
docs: Return true if the given type could possibly reference a type parameter for which we perform type inference (i.e. a type parameter of a generic function). We cache results for union and intersection types for performance reasons.