mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-25 16:00:09 +01:00
Start handling variable declarations (#571)
TODOs in the test for known issues. I may switch the approach to getting the variable type (on examination, this isn't working quite as well as I'd thought) but for now I think it's okay. I had an earlier approach though that may work better overall -- I'd been thinking this would work better, but as you can see in the null check for type information, I think I missed a key point. Anyways, what'd really been vexing me was `int i, j` which I think I handle passably well now. There's obviously room for improvement, but given I've been going at this for a couple days now, I thought it best to checkpoint where I was. This also includes some related framework changes to fix bumps I was running into. Overall the tool should operate a bit more smoothly with these changes. There are still issues with overlapping replacements, but I think it's primarily with range-based for loops which I just need to take some time to fix.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "clang/Tooling/CommonOptionsParser.h"
|
||||
#include "clang/Tooling/Refactoring.h"
|
||||
#include "migrate_cpp/cpp_refactoring/fn_inserter.h"
|
||||
#include "migrate_cpp/cpp_refactoring/var_decl.h"
|
||||
|
||||
namespace cam = ::clang::ast_matchers;
|
||||
namespace ct = ::clang::tooling;
|
||||
@@ -32,8 +33,10 @@ auto main(int argc, const char** argv) -> int {
|
||||
InitReplacements(&tool);
|
||||
|
||||
// Set up AST matcher callbacks.
|
||||
auto& repl = tool.getReplacements();
|
||||
cam::MatchFinder finder;
|
||||
Carbon::FnInserter fn_inserter(tool.getReplacements(), &finder);
|
||||
Carbon::FnInserter fn_inserter(repl, &finder);
|
||||
Carbon::VarDecl var_decl(repl, &finder);
|
||||
|
||||
return tool.runAndSave(
|
||||
clang::tooling::newFrontendActionFactory(&finder).get());
|
||||
|
||||
Reference in New Issue
Block a user