================ @@ -7539,74 +7559,65 @@ static NullabilityKind mapNullabilityAttrKind(ParsedAttr::Kind kind) { } } -/// Applies a nullability type specifier to the given type, if possible. -/// -/// \param state The type processing state. -/// -/// \param type The type to which the nullability specifier will be -/// added. On success, this type will be updated appropriately. -/// -/// \param attr The attribute as written on the type. -/// -/// \param allowOnArrayType Whether to accept nullability specifiers on an -/// array type (e.g., because it will decay to a pointer). -/// -/// \returns true if a problem has been diagnosed, false on success. -static bool checkNullabilityTypeSpecifier(TypeProcessingState &state, - QualType &type, - ParsedAttr &attr, - bool allowOnArrayType) { - Sema &S = state.getSema(); - - NullabilityKind nullability = mapNullabilityAttrKind(attr.getKind()); - SourceLocation nullabilityLoc = attr.getLoc(); - bool isContextSensitive = attr.isContextSensitiveKeywordAttribute(); - - recordNullabilitySeen(S, nullabilityLoc); +static bool CheckNullabilityTypeSpecifier( + Sema &S, TypeProcessingState *State, ParsedAttr *PAttr, QualType &QT, + NullabilityKind Nullability, SourceLocation NullabilityLoc, + bool IsContextSensitive, bool AllowOnArrayType, bool OverrideExisting) { + bool Implicit = (State == nullptr); + if (!Implicit) + recordNullabilitySeen(S, NullabilityLoc); // Check for existing nullability attributes on the type. - QualType desugared = type; - while (auto attributed = dyn_cast<AttributedType>(desugared.getTypePtr())) { + QualType Desugared = QT; + while (auto Attributed = dyn_cast<AttributedType>(Desugared.getTypePtr())) { // Check whether there is already a null - if (auto existingNullability = attributed->getImmediateNullability()) { + if (auto ExistingNullability = Attributed->getImmediateNullability()) { ---------------- egorzhdan wrote:
This is a `std::optional<NullabilityKind>`, it doesn't fit in one line. Would you still prefer an explicit type? https://github.com/llvm/llvm-project/pull/73017 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits