diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-24 14:15:26 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-24 14:15:26 +0300 |
| commit | c8b7f1dddd63f1ef02fb9414cfcff5727e98a911 (patch) | |
| tree | 4109718598cfbb8cfa98c7a4e0d4f130d902aab5 /internal/rpn | |
| parent | a8bf293f048b91c912c77768b6a7859f58739e9c (diff) | |
Add compile-time interface satisfaction checks (xj)
Add var _ Interface assertions to verify implementations at compile
time:
- internal/rpn/variables.go: assert *Variables against
VariableReader, VariableWriter, VariablePersistence, and
VariableStore
- internal/repl/handlers.go: assert *BuiltInCommandHandler,
*RPNHandler, *PercentageHandler, and *ErrorHandler against
CommandHandler (BaseHandler intentionally excluded as it lacks a
Handle method and is only meant for embedding)
- internal/repl/completer.go: assert *AutoCompleteAdapter against
readline.AutoCompleter (adds readline import)
Note: internal/rpn/constants.go already had assertions in place.
Diffstat (limited to 'internal/rpn')
| -rw-r--r-- | internal/rpn/variables.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/internal/rpn/variables.go b/internal/rpn/variables.go index 0ebb52f..eab6546 100644 --- a/internal/rpn/variables.go +++ b/internal/rpn/variables.go @@ -65,6 +65,14 @@ type VariableStore interface { VariablePersistence } +// Ensure Variables implements all variable interfaces at compile time. +var ( + _ VariableReader = (*Variables)(nil) + _ VariableWriter = (*Variables)(nil) + _ VariablePersistence = (*Variables)(nil) + _ VariableStore = (*Variables)(nil) +) + // NewVariables creates and initializes a new Variables instance. func NewVariables() *Variables { return &Variables{ |
