================
@@ -158,12 +158,12 @@ TEST_F(InterpreterTest, UndoCommand) {
 
   // Fail to undo.
   auto Err1 = Interp->Undo();
-  EXPECT_EQ("Operation failed. Too many undos",
+  EXPECT_EQ("Operation failed. No input left to undo",
             llvm::toString(std::move(Err1)));
   auto Err2 = Interp->Parse("int foo = 42;");
   EXPECT_TRUE(!!Err2);
   auto Err3 = Interp->Undo(2);
-  EXPECT_EQ("Operation failed. Too many undos",
+  EXPECT_EQ("Operation failed. No input left to undo",
----------------
DavidSpickett wrote:

The complication here is that although the clang-repl `%undo` only undoes one 
input, the internal method can actually undo more than that. This test for 
example is trying to undo 2 things.

So the code needs to be a bit more intelligent. You have two situations:
* You have nothing left to undo.
* You have some things left to undo but *want* to undo more than that.

In both cases you error because you don't want to partially undo something, but 
the message should be specific. In the same order as above, I suggest:
* "No input left to undo"
* "Want to undo X inputs, only have Y" (with the message formatted with the 
correct numbers)

For formatting the error, we have some utilities to do that, I will find those 
for you.

Side note: "inputs" might not be the right noun, but stick with it for now and 
we can ask a clang-repl maintainer whether it's ok.

https://github.com/llvm/llvm-project/pull/149396
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to