Table of Contents

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

⏭️ VBC00001 Syntax error


ACCUEIL • HOME | ℹ️ BIENVENUE • WELCOME | 🧩 BÂTISSONS • BUILD | RD-VBAL | SDK | 🌐 rubberduckvba.ca