Details
Details
- Reviewers
MyDeveloperDay HazardyKnusperkeks owenpan
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
50 ms | x64 debian > LLVM.Bindings/Go::go.test |
Event Timeline
Comment Actions
Thank you for doing this.
With the patch, I get this diff:
diff diff --git a/sources/details/waarudo.details.utilities.cpp b/sources/details/waarudo.details.utilities.cpp index 0b3680e..6e234ac 100644 --- a/sources/details/waarudo.details.utilities.cpp +++ b/sources/details/waarudo.details.utilities.cpp @@ -7,8 +7,8 @@ namespace waarudo { export template<class T, template<class...> class U> concept specialization_of = // (requires(T v) { - []<class... V>(U<V...>) requires std::same_as<T, U<V...>> { } - (v); + []<class... V>(U<V...>) requires std::same_as<T, U<V...>> { + }(v); }); template<class T, class U> concept value_trait_for = // diff --git a/sources/waarudo.quantities.cpp b/sources/waarudo.quantities.cpp index 83a17db..fdc4c53 100644 --- a/sources/waarudo.quantities.cpp +++ b/sources/waarudo.quantities.cpp @@ -52,12 +52,20 @@ export template<class Id, number Number> struct quantity { requires std::convertible_to<const Number&, Number2> [[nodiscard]] constexpr operator quantity<Id, Number2>() const { return {number}; } - constexpr quantity& operator++() & requires ordered_number<Number> { return ++number, *this; } - constexpr quantity& operator--() & requires ordered_number<Number> { return --number, *this; } - [[nodiscard]] constexpr quantity operator++(int) & requires ordered_number<Number> { return {number++}; } - [[nodiscard]] constexpr quantity operator--(int) & requires ordered_number<Number> { return {number--}; } + constexpr quantity& operator++() & requires ordered_number<Number> { + return ++number, *this; + } constexpr quantity& operator--() & requires ordered_number<Number> { + return --number, *this; + } [[nodiscard]] constexpr quantity operator++(int) & requires ordered_number<Number> { + return {number++}; + } [[nodiscard]] constexpr quantity operator--(int) & requires ordered_number<Number> { + return {number--}; + } - constexpr quantity& operator+=(const relative_quantity_for<quantity> auto& d) & { return number += d.number, *this; } + constexpr quantity& + operator+=(const relative_quantity_for<quantity> auto& d) & { + return number += d.number, *this; + } constexpr quantity& operator-=(const relative_quantity_for<quantity> auto& d) & { return number -= d.number, *this; } template<relative_quantity_for<quantity> Q>
Here's how it looks without the patch:
namespace waarudo { export template<class T, template<class...> class U> concept specialization_of = // (requires(T v) { []<class... V>(U<V...>) requires std::same_as<T, U<V...>> { } (v); }); struct x { constexpr quantity& operator++() & requires ordered_number<Number> { return ++number, *this; } constexpr quantity& operator--() & requires ordered_number<Number> { return --number, *this; } [[nodiscard]] constexpr quantity operator++(int) & requires ordered_number<Number> { return {number++}; } [[nodiscard]] constexpr quantity operator--(int) & requires ordered_number<Number> { return {number--}; } constexpr quantity& operator+=(const relative_quantity_for<quantity> auto& d) & { return number += d.number, *this; } constexpr quantity& operator-=(const relative_quantity_for<quantity> auto& d) & { return number -= d.number, *this; } }; } // namespace waarudo
Here's my .clang-format:
AccessModifierOffset: -2 AlignAfterOpenBracket: AlwaysBreak AlignArrayOfStructures: None AlignConsecutiveAssignments: Consecutive AlignConsecutiveBitFields: true AlignConsecutiveDeclarations: false AlignEscapedNewlines: Right AlignOperands: Align AlignTrailingComments: true AllowAllArgumentsOnNextLine: true AllowAllConstructorInitializersOnNextLine: true AllowAllParametersOfDeclarationOnNextLine: true AllowShortBlocksOnASingleLine: Always AllowShortCaseLabelsOnASingleLine: true AllowShortEnumsOnASingleLine: true AllowShortFunctionsOnASingleLine: All AllowShortIfStatementsOnASingleLine: AllIfsAndElse AllowShortLambdasOnASingleLine: All AllowShortLoopsOnASingleLine: true AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: false AlwaysBreakTemplateDeclarations: No BinPackArguments: true BinPackParameters: true BitFieldColonSpacing: Both BreakBeforeBinaryOperators: None BreakBeforeBraces: Attach BreakBeforeConceptDeclarations: false BreakBeforeTernaryOperators: true BreakConstructorInitializers: BeforeColon BreakInheritanceList: BeforeColon BreakStringLiterals: true ColumnLimit: 120 ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 2 ContinuationIndentWidth: 2 Cpp11BracedListStyle: true DeriveLineEnding: false DerivePointerAlignment: false DisableFormat: false EmptyLineAfterAccessModifier: Never EmptyLineBeforeAccessModifier: Always FixNamespaceComments: true IncludeBlocks: Preserve IncludeCategories: - Regex: '<(experimental/)?[a-z_]+>' # C++ standard library Priority: 1 IndentAccessModifiers: false IndentCaseBlocks: false IndentCaseLabels: false IndentPPDirectives: AfterHash IndentRequires: true IndentWidth: 2 IndentWrappedFunctionNames: false KeepEmptyLinesAtTheStartOfBlocks: false Language: Cpp MaxEmptyLinesToKeep: 1 NamespaceIndentation: Inner PointerAlignment: Left PPIndentWidth: -1 ReflowComments: true ShortNamespaceLines: 0 SortIncludes: CaseInsensitive SortUsingDeclarations: true SpaceAfterLogicalNot: true SpaceAfterTemplateKeyword: false SpaceBeforeAssignmentOperators: true SpaceBeforeCaseColon: false SpaceBeforeCpp11BracedList: false SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true SpaceBeforeParens: ControlStatements SpaceBeforeRangeBasedForLoopColon: true SpaceBeforeSquareBrackets: false SpaceInEmptyBlock: true SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 SpacesInAngles: false SpacesInConditionalStatement: false SpacesInLineCommentPrefix: Minimum: 1 Maximum: 1 SpacesInParentheses: false SpacesInSquareBrackets: false Standard: Latest TabWidth: 2 UseCRLF: false UseTab: Never
The second file in the diff, sources/waarudo.quantities.cpp, has a problem. The problem is that I've built my .clang-format to minimize line breaks, but for some reason, what fit on a line before, now doesn't.
On inspection, its first diff does not insert a line break before the start of new functions. Its second diff changes just the first function. If I remove the lines in the previous diff so that x only has operators += and -=, they remain unchanged.