[commands] CommandCompositionError: Include stacktrace of original composition (#5984)

This commit is contained in:
Starlight220
2023-12-09 19:45:02 +02:00
committed by GitHub
parent 54a55b8b53
commit a770110438
6 changed files with 57 additions and 23 deletions

View File

@@ -6,11 +6,13 @@
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <units/time.h>
#include <wpi/Demangle.h>
#include <wpi/SmallSet.h>
#include <wpi/StackTrace.h>
#include <wpi/sendable/Sendable.h>
#include "frc2/command/Requirements.h"
@@ -387,6 +389,14 @@ class Command : public wpi::Sendable, public wpi::SendableHelper<Command> {
*/
void SetComposed(bool isComposed);
/**
* Get the stacktrace of where this command was composed, or an empty
* optional. Intended for internal use.
*
* @return optional string representation of the composition site stack trace.
*/
std::optional<std::string> GetPreviousCompositionSite() const;
/**
* Whether the given command should run when the robot is disabled. Override
* to return true if the command should run when disabled.
@@ -424,7 +434,7 @@ class Command : public wpi::Sendable, public wpi::SendableHelper<Command> {
*/
virtual std::unique_ptr<Command> TransferOwnership() && = 0;
bool m_isComposed = false;
std::optional<std::string> m_previousComposition;
};
/**