docs: function reportWideningErrorsInType(type) {
              var errorReported = false;
              if (type.flags & 524288 /* Union */) {
                  for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
                      var t = _a[_i];
                      if (reportWideningErrorsInType(t)) {
                          errorReported = true;
                      }
                  }
              }
              if (isArrayType(type) || isTupleType(type)) {
                  for (var _b = 0, _c = type.typeArguments; _b < _c.length; _b++) {
                      var t = _c[_b];
                      if (reportWideningErrorsInType(t)) {
                          errorReported = true;
                      }
                  }
              }
              if (type.flags & 8388608 /* ObjectLiteral */) {
                  for (var _d = 0, _e = getPropertiesOfObjectType(type); _d < _e.length; _d++) {
                      var p = _e[_d];
                      var t = getTypeOfSymbol(p);
                      if (t.flags & 33554432 /* ContainsWideningType */) {
                          if (!reportWideningErrorsInType(t)) {
                              error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t)));
                          }
                          errorReported = true;
                      }
                  }
              }
              return errorReported;
          }