Index: clang-tools-extra/trunk/clangd/refactor/tweaks/ExtractVariable.cpp =================================================================== --- clang-tools-extra/trunk/clangd/refactor/tweaks/ExtractVariable.cpp +++ clang-tools-extra/trunk/clangd/refactor/tweaks/ExtractVariable.cpp @@ -272,7 +272,7 @@ // Extracting Exprs like a = 1 gives dummy = a = 1 which isn't useful. if (const BinaryOperator *BinOpExpr = dyn_cast_or_null(SelectedExpr)) { - if (BinOpExpr->getOpcode() == BinaryOperatorKind::BO_Assign) + if (BinOpExpr->isAssignmentOp()) return false; } // For function and member function DeclRefs, we look for a parent that is a Index: clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp =================================================================== --- clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp +++ clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp @@ -371,6 +371,8 @@ auto lamb = [&[[a]], &[[b]]](int r = [[1]]) {return 1;} // assigment [[a = 5]]; + [[a >>= 5]]; + [[a *= 5]]; // Variable DeclRefExpr a = [[b]]; // label statement