From 1ee679395d96a48c100e31a50eb0719ebff3e42c Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Thu, 3 Oct 2019 17:12:08 -0700 Subject: [PATCH] Add 'invariant' function for debugging --- plugin/src/invariant.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugin/src/invariant.lua diff --git a/plugin/src/invariant.lua b/plugin/src/invariant.lua new file mode 100644 index 00000000..3923095b --- /dev/null +++ b/plugin/src/invariant.lua @@ -0,0 +1,27 @@ +local Config = require(script.Parent.Config) + +local invariant + +if Config.isDevBuild then + function invariant(message, ...) + message = string.format(message, ...) + + error("Invariant violation: " .. message, 2) + end +else + function invariant(message, ...) + message = string.format(message, ...) + + local fullMessage = string.format( + "Rojo detected an invariant violation within itself:\n" .. + "%s\n\n" .. + "This is a bug in Rojo. Please file an issue:\n" .. + "https://github.com/rojo-rbx/rojo/issues", + message + ) + + error(fullMessage, 2) + end +end + +return invariant \ No newline at end of file