================ @@ -87,6 +85,28 @@ bool isStdVariant(const Type *Type) { return isStdType(Type, llvm::StringLiteral("variant")); } +bool isStdAny(const Type *Type) { + return isStdType(Type, llvm::StringLiteral("any")); +} + +bool isVowel(char a) { + switch (a) { + case 'a': + case 'e': + case 'i': + case 'o': + case 'u': + return true; + default: + return false; + } +} + +llvm::StringRef indefiniteArticleBasedOnVowel(char a) { + if (isVowel(a)) + return "an"; + return "a"; +} ---------------- DonatNagyE wrote:
I think parenthesized `a(n)` in 100% of the messages is uglier than incorrectly applied `a` or `an` in <1% of the messages (in average English text, 1% of the words start with `u` [1] -- this may be different for type names, but the order of magnitude should be similar). However, this is just bikesheddig, so I won't block any of the three solutions (decision based on `isVowel()`, using `a(n)` and using filler words to dodge the issue). [1] https://www.johndcook.com/blog/2021/08/16/initial-letter-frequency/ https://github.com/llvm/llvm-project/pull/76580 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits