alexfh added a comment. Looks mostly good, a few nits.
================ Comment at: clang-tidy/modernize/RawStringLiteralCheck.cpp:82 @@ +81,3 @@ + ? std::string{R"lit()")lit"} + : (")" + Delimiter + R"(")")) != StringRef::npos; +} ---------------- LegalizeAdulthood wrote: > aaron.ballman wrote: > > This is a wonderful demonstration of why I hate raw string literals on > > shorter strings. I had to stare at that raw string for quite some time to > > figure it out. :-( > I used a raw string literal here because that's what this check would have > recommended on this code :-). > > However, your feedback is useful. If I subsequently enhance this check with > a parameter that says the minimum length a string literal must have before it > is to be transformed into a raw string literal and the default value for that > parameter is something like 5, would that address your concern? That (a way to configure some thresholds of "sensitivity" of this check, so it doesn't change `"\""` to `R"(")"` etc.) is roughly what I suggested a while ago, and we decided that this can be addressed in a follow up. ================ Comment at: clang-tidy/modernize/RawStringLiteralCheck.cpp:98 @@ +97,3 @@ +} + +} // namespace ---------------- > Working with the hard-coded list of delimiters is no more or less efficient > than the general algorithm that I > implemented, so efficiency is not the concern here. The other concern is: >> IMO, we don't need a universal algorithm that will hardly ever go further >> than the second iteration, and even in >> this case would produce a result that's likely undesirable (as I said, >> R"lit0(....)lit0" is not what I would want to >> see in my code). However, given the low probability of this scenario, I don't want to waste more of our time on this. The current algorithm is good enough for the first version. ================ Comment at: clang-tidy/modernize/RawStringLiteralCheck.cpp:104 @@ +103,3 @@ + : ClangTidyCheck(Name, Context), + DelimiterStem{Options.get("DelimiterStem", "lit")} {} + ---------------- AFAIU, braced initializers in constructor initializer lists are not supported on MSVC 2013. ================ Comment at: clang-tidy/modernize/RawStringLiteralCheck.cpp:104 @@ +103,3 @@ + : ClangTidyCheck(Name, Context), + DelimiterStem{Options.get("DelimiterStem", "lit")} {} + ---------------- alexfh wrote: > AFAIU, braced initializers in constructor initializer lists are not supported > on MSVC 2013. > Then the documentation needs to be updated. (Actually I couldn't find any > documentation on these flags and how they relate to each other because they > use preprocessor hell to generate bitfields in a structure.) As with most things in open source, the documentation is missing, since nobody yet needed it strongly enough to write it. If you feel it's worth your time, send a patch to whoever maintains Clang frontend code these days. The documentation should go somewhere around include/clang/Frontend/LangStandards.def:115 or include/clang/Basic/LangOptions.def:77. http://reviews.llvm.org/D16529 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits