RDCore Diagnostics
Every problem the RDCore platform reports carries a stable code and, through the LSP
codeDescription field, a link to its page here. See
RD-VBAL §2.6 Diagnostics for the definition of each code
family, and RD-VBAL §2.6.5 Diagnostics Pipeline
for the pull pipeline.
| Family | Prefix | Raised by |
|---|---|---|
| Syntax errors | VBC (VBC00001–VBC00999) |
the parser, walking the concrete syntax tree |
| Semantic compilation errors | VBC (VBC09300+) |
the static semantics layer, walking the abstract syntax tree |
| Runtime errors | VBR / VBA |
the runtime semantics layer (VBR) / a workspace Err.Raise (VBA) |
| Rubberduck Core diagnostics | RDC |
the RDCore.Diagnostics analyzers |
Stability
A code has a page here as soon as the platform can emit it.
Once published, a code is not renumbered and not retired: a workspace built against an older release must still resolve its diagnostic links. The content of a page may evolve as the ideal set of codes is narrowed down; the code and its abstract meaning do not.
Each page describes the condition in the abstract. The specifics of a particular occurrence (which token, which literal, which type) are carried in the diagnostic's verbose detail, not in the code.
Published codes
Syntax errors
| Code | Condition |
|---|---|
| VBC00001 | Syntax error — a token the grammar cannot place |
| VBC00042 | Numeric literal overflow — a literal outside the range of its type |
Semantic compilation errors
| Code | Condition |
|---|---|
| VBC09309 | Label not defined — a jump names a line label or line number the procedure does not define |
| VBC09312 | Exit Do not within Do...Loop — an Exit Do that is not inside a Do loop |
| VBC09313 | Exit For not within For...Next — an Exit For that is not inside a For or For Each loop |
| VBC09314 | Exit Function not allowed in Sub or Property — an Exit Function in a Sub, or a Property Let or Set |
| VBC09315 | Exit Property not allowed in Sub or Function — an Exit Property in a Sub or a Function |
| VBC09319 | Duplicate label definition — a procedure defines the same line label or line number more than once |
| VBC09320 | Inconsistent property accessors — a property's Get/Let/Set do not together describe one valid property |
| VBC09321 | Argument required for Property Let or Property Set — a Let/Set declares no parameters at all |
| VBC09322 | Event not defined — a RaiseEvent names an event the class module does not declare |
| VBC09323 | Wrong number of arguments or invalid argument for event — a RaiseEvent's arguments do not match the event's parameters |
| VBC09324 | Invalid type for WithEvents variable — not a specific class with events, or the class of its own module |
| VBC09325 | Invalid event name — an Event declaration whose name has an underscore |
| VBC09326 | Invalid event handler — a procedure named for an event is not a subroutine with a compatible parameter list |
| VBC09327 | ByVal argument not allowed here — a ByVal argument in an argument list that is not an external procedure's |
| VBC09328 | Invalid Implements directive — the class itself, a repeat, an underscore in a public member, or overlapping interface prefixes |
| VBC09329 | Object module needs to implement all members of its interface — a public member of the interface has no implemented name declaration |
| VBC09330 | Invalid implemented member — an implemented name declaration of another kind, parameters or type than its member |
| VBC09331 | Sub or Function not defined — a statement or a call the language the code is written in does not have |
| VBC09332 | Exit Sub not allowed in Function or Property — an Exit Sub in a Function or a property |
| VBC09333 | Variable required — an expression that is not a variable is where a statement requires one |
| VBC09334 | Access not valid for the file mode — the Access clause of an Open is not one its For mode allows |
Rubberduck Core diagnostics
| Code | Condition |
|---|---|
| RDC00101 | Implicit declarations enabled — a module that does not state Option Explicit |
| RDC00302 | Obsolete Call statement — a call statement written with the Call keyword |
ACCUEIL • HOME | ℹ️ BIENVENUE • WELCOME | 🧩 BÂTISSONS • BUILD | RD-VBAL | SDK | 🌐 rubberduckvba.ca