//===--- PopulateSwitch.cpp --------------------------------------*- C++-*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Tweak that populates an empty switch statement of an enumeration type with // all of the enumerators of that type. // // Before: // enum Color { RED, GREEN, BLUE }; // // void f(Color color) { // switch (color) {} // } // // After: // enum Color { RED, GREEN, BLUE }; // // void f(Color color) { // switch (color) { // case RED: // case GREEN: // case BLUE: // break; // } // } // //===----------------------------------------------------------------------===// #include "AST.h" #include "Selection.h" #include "refactor/Tweak.h" #include "clang/AST/Decl.h" #include "clang/AST/Stmt.h" #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Tooling/Core/Replacement.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/STLExtras.h" #include <cassert> #include <string> namespace clang { namespace clangd { namespace … // namespace } // namespace clangd } // namespace clang