Skip to content

Commit 8cad6e0

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into BugBlipper
2 parents f9e1088 + c8c3a96 commit 8cad6e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+5600
-4995
lines changed

Rubberduck.Parsing/Annotations/AnnotationListener.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ public IEnumerable<IAnnotation> Annotations
2929
public override void ExitAnnotation([NotNull] VBAParser.AnnotationContext context)
3030
{
3131
var newAnnotation = _factory.Create(context, new QualifiedSelection(_qualifiedName, context.GetSelection()));
32-
_annotations.Add(newAnnotation);
32+
// It might be an annotation we don't support or a typo.
33+
if (newAnnotation != null)
34+
{
35+
_annotations.Add(newAnnotation);
36+
}
3337
}
3438
}
3539
}

Rubberduck.Parsing/Binding/VBAExpressionParser.cs

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -40,33 +40,33 @@ public const int
4040
CDBL=8, PERCENT=46, END_SELECT=94, STRING=183, HASHELSEIF=220, SGN=37,
4141
REM=169, TO=188, DEFDBL=73, BYVAL=59, FRIEND=110, LOOP=126, CLASS=64,
4242
DO=84, VARIANT=194, END_WITH=97, DEFBOOL=70, OPTIONAL=147, ADDRESSOF=50,
43-
CONST=66, RSET=173, INTEGER=123, CDEC=9, REMCOMMENT=232, ATTRIBUTE=53,
44-
OUTPUT=153, FOR=111, PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91,
45-
DEFSNG=80, DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145,
43+
CONST=66, RSET=173, INTEGER=123, CDEC=9, ATTRIBUTE=53, OUTPUT=153, FOR=111,
44+
PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91, DEFSNG=80,
45+
DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145,
4646
FLOATLITERAL=228, HASHELSE=221, BINARY=57, LENB=28, RETURN=172, EXCLAMATIONPOINT=42,
47-
NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=237, WS=236, EMPTY=89, CURRENCY=17,
47+
NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=236, WS=234, EMPTY=89, CURRENCY=17,
4848
CCUR=6, MOD=137, WITHEVENTS=200, COLON=40, DEFLNGLNG=77, STEP=181, OPTION_BASE=148,
49-
GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=238,
50-
TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=240,
51-
UNDERSCORE=235, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=234,
49+
GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=237,
50+
TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=238,
51+
UNDERSCORE=233, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=232,
5252
MULT=213, SEMICOLON=41, BYTE=61, HEXLITERAL=227, ELSE=87, IF=117, TYPE=190,
5353
AMPERSAND=48, DEFLNGPTR=78, ENUM=99, DEFOBJ=79, IN=120, OPTION=34, DOT=43,
54-
EXIT_DO=104, GUIDLITERAL=239, IS=122, EQV=100, WEND=196, FUNCTION=112,
54+
EXIT_DO=104, GUIDLITERAL=235, IS=122, EQV=100, WEND=196, FUNCTION=112,
5555
HASH=44, CASE=63, GEQ=207, GET=113, PUBLIC=162, ON_ERROR=144, EXIT=22,
5656
MIDB=31, END_ENUM=90, GOTO=116, INTDIV=205, LONGPTR=30, WIDTH=198, BEGIN=56,
57-
EXIT_SUB=108, ASSIGN=203, COMMENT=233, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107,
58-
COMMA=39, RANDOM=164, PROPERTY_GET=158, SELECT=175, PRIVATE=157, ERASE=101,
59-
TAB=185, BYREF=60, VERSION=195, NEQ=214, END_TYPE=96, NEW=139, ARRAY=3,
60-
INPUT=121, SINGLE=178, ALIAS=51, SPC=179, LT=211, RESET=170, END_SUB=95,
61-
EVENT=103, READ_WRITE=167, OPTION_COMPARE=150, ME=135, SCALE=36, CDATE=7,
62-
MIDTYPESUFFIX=33, NULL=142, NEWLINE=231, TRUE=189, RPAREN=217, IMP=118,
63-
STRINGLITERAL=225, OCTLITERAL=226, READ=166, DATE=68, LIKE=129, AND=52,
64-
OPTION_PRIVATE_MODULE=151, CLNGLNG=13, PLUS=215, ANY=2, RESUME=171, INT=25,
65-
SHARED=177, EXIT_FUNCTION=106, PSET=35, ACCESS=49, LINE_INPUT=130, ON=143,
66-
OR=152, PARAMARRAY=154, LBOUND=26, R_SQUARE_BRACKET=224, IMPLEMENTS=119,
67-
UNTIL=193, DEBUG=20, DEFCUR=74, CLNGPTR=14, LONGLONG=29, DECLARE=69, DEFDATE=72,
68-
FIX=23, LEN=27, REDIM=168, LEQ=209, DEFSTR=81, LET=127, WHILE=197, CVAR=18,
69-
CLNG=12, FOREIGNNAME=241, OBJECT=242, COLLECTION=243;
57+
EXIT_SUB=108, ASSIGN=203, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107, COMMA=39,
58+
RANDOM=164, PROPERTY_GET=158, SELECT=175, PRIVATE=157, ERASE=101, TAB=185,
59+
BYREF=60, VERSION=195, NEQ=214, END_TYPE=96, NEW=139, ARRAY=3, INPUT=121,
60+
SINGLE=178, ALIAS=51, SPC=179, LT=211, RESET=170, END_SUB=95, EVENT=103,
61+
READ_WRITE=167, OPTION_COMPARE=150, ME=135, SCALE=36, CDATE=7, MIDTYPESUFFIX=33,
62+
NULL=142, NEWLINE=231, TRUE=189, RPAREN=217, IMP=118, STRINGLITERAL=225,
63+
OCTLITERAL=226, READ=166, DATE=68, LIKE=129, AND=52, OPTION_PRIVATE_MODULE=151,
64+
CLNGLNG=13, PLUS=215, ANY=2, RESUME=171, INT=25, SHARED=177, EXIT_FUNCTION=106,
65+
PSET=35, ACCESS=49, LINE_INPUT=130, ON=143, OR=152, PARAMARRAY=154, LBOUND=26,
66+
R_SQUARE_BRACKET=224, IMPLEMENTS=119, UNTIL=193, DEBUG=20, DEFCUR=74,
67+
CLNGPTR=14, LONGLONG=29, DECLARE=69, DEFDATE=72, FIX=23, LEN=27, REDIM=168,
68+
LEQ=209, DEFSTR=81, LET=127, WHILE=197, CVAR=18, CLNG=12, FOREIGNNAME=239,
69+
OBJECT=240, COLLECTION=241;
7070
public static readonly string[] tokenNames = {
7171
"<INVALID>", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE",
7272
"CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG",
@@ -98,9 +98,8 @@ public const int
9898
"LEQ", "'('", "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST",
9999
"HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL",
100100
"OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL",
101-
"NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER",
102-
"LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "FOREIGNNAME", "OBJECT",
103-
"COLLECTION"
101+
"NEWLINE", "'''", "'_'", "WS", "GUIDLITERAL", "IDENTIFIER", "LINE_CONTINUATION",
102+
"ERRORCHAR", "FOREIGNNAME", "OBJECT", "COLLECTION"
104103
};
105104
public const int
106105
RULE_startRule = 0, RULE_callStmt = 1, RULE_unrestrictedName = 2, RULE_name = 3,
@@ -5331,7 +5330,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) {
53315330
}
53325331

53335332
public static readonly string _serializedATN =
5334-
"\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x265\x4\x2"+
5333+
"\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF3\x265\x4\x2"+
53355334
"\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+
53365335
"\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+
53375336
"\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+
@@ -5404,7 +5403,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) {
54045403
"\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x8A\x8A\t\x2\x5\x5\r\r"+
54055404
"\x1A\x1A\x1C\x1C&&(({{\r\x2\x13\x13\x1F <<??\x46\x46WW}}\x7F\x7F\xB4\xB4"+
54065405
"\xB9\xB9\xC4\xC4\v\x2\x35\x35\x37\x37::\x42\x42\x82\x82\x91\x91\xBB\xBB"+
5407-
"\xC5\xC5\xF5\xF5\x4\x2oo\xBF\xBF\x4\x2[[\x90\x90\x4\x2\xEE\xEE\xF0\xF0"+
5406+
"\xC5\xC5\xF3\xF3\x4\x2oo\xBF\xBF\x4\x2[[\x90\x90\x4\x2\xEC\xEC\xEF\xEF"+
54085407
"\x2B0\x2r\x3\x2\x2\x2\x4y\x3\x2\x2\x2\x6\x82\x3\x2\x2\x2\b\x86\x3\x2\x2"+
54095408
"\x2\n\x8A\x3\x2\x2\x2\f\x8C\x3\x2\x2\x2\xE\x8E\x3\x2\x2\x2\x10\x99\x3"+
54105409
"\x2\x2\x2\x12\x9B\x3\x2\x2\x2\x14\xA5\x3\x2\x2\x2\x16\xA7\x3\x2\x2\x2"+
@@ -5429,23 +5428,23 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) {
54295428
"\x84\x3\x2\x2\x2\x86\x85\x3\x2\x2\x2\x87\t\x3\x2\x2\x2\x88\x8B\x5\f\a"+
54305429
"\x2\x89\x8B\x5\xE\b\x2\x8A\x88\x3\x2\x2\x2\x8A\x89\x3\x2\x2\x2\x8B\v\x3"+
54315430
"\x2\x2\x2\x8C\x8D\x5R*\x2\x8D\r\x3\x2\x2\x2\x8E\x8F\x5R*\x2\x8F\x90\x5"+
5432-
"\x16\f\x2\x90\xF\x3\x2\x2\x2\x91\x9A\a\xEF\x2\x2\x92\x9A\a\xF3\x2\x2\x93"+
5433-
"\x9A\x5^\x30\x2\x94\x9A\x5`\x31\x2\x95\x9A\x5\x18\r\x2\x96\x9A\a\xF4\x2"+
5431+
"\x16\f\x2\x90\xF\x3\x2\x2\x2\x91\x9A\a\xEE\x2\x2\x92\x9A\a\xF1\x2\x2\x93"+
5432+
"\x9A\x5^\x30\x2\x94\x9A\x5`\x31\x2\x95\x9A\x5\x18\r\x2\x96\x9A\a\xF2\x2"+
54345433
"\x2\x97\x9A\x5\x64\x33\x2\x98\x9A\ah\x2\x2\x99\x91\x3\x2\x2\x2\x99\x92"+
54355434
"\x3\x2\x2\x2\x99\x93\x3\x2\x2\x2\x99\x94\x3\x2\x2\x2\x99\x95\x3\x2\x2"+
54365435
"\x2\x99\x96\x3\x2\x2\x2\x99\x97\x3\x2\x2\x2\x99\x98\x3\x2\x2\x2\x9A\x11"+
54375436
"\x3\x2\x2\x2\x9B\x9C\x5\x14\v\x2\x9C\x9D\x5\x16\f\x2\x9D\x13\x3\x2\x2"+
5438-
"\x2\x9E\xA6\a\xEF\x2\x2\x9F\xA6\x5^\x30\x2\xA0\xA6\x5`\x31\x2\xA1\xA6"+
5439-
"\x5\x18\r\x2\xA2\xA6\a\xF4\x2\x2\xA3\xA6\x5\x64\x33\x2\xA4\xA6\ah\x2\x2"+
5437+
"\x2\x9E\xA6\a\xEE\x2\x2\x9F\xA6\x5^\x30\x2\xA0\xA6\x5`\x31\x2\xA1\xA6"+
5438+
"\x5\x18\r\x2\xA2\xA6\a\xF2\x2\x2\xA3\xA6\x5\x64\x33\x2\xA4\xA6\ah\x2\x2"+
54405439
"\xA5\x9E\x3\x2\x2\x2\xA5\x9F\x3\x2\x2\x2\xA5\xA0\x3\x2\x2\x2\xA5\xA1\x3"+
54415440
"\x2\x2\x2\xA5\xA2\x3\x2\x2\x2\xA5\xA3\x3\x2\x2\x2\xA5\xA4\x3\x2\x2\x2"+
54425441
"\xA6\x15\x3\x2\x2\x2\xA7\xA8\t\x2\x2\x2\xA8\x17\x3\x2\x2\x2\xA9\xAA\t"+
54435442
"\x3\x2\x2\xAA\x19\x3\x2\x2\x2\xAB\xC1\x5\x62\x32\x2\xAC\xAE\a\xE1\x2\x2"+
54445443
"\xAD\xAF\x5n\x38\x2\xAE\xAD\x3\x2\x2\x2\xAE\xAF\x3\x2\x2\x2\xAF\xB0\x3"+
54455444
"\x2\x2\x2\xB0\xB2\x5\x62\x32\x2\xB1\xB3\x5n\x38\x2\xB2\xB1\x3\x2\x2\x2"+
54465445
"\xB2\xB3\x3\x2\x2\x2\xB3\xB4\x3\x2\x2\x2\xB4\xB5\a\xE2\x2\x2\xB5\xC1\x3"+
5447-
"\x2\x2\x2\xB6\xC1\a\xF4\x2\x2\xB7\xB9\a\xE1\x2\x2\xB8\xBA\x5n\x38\x2\xB9"+
5448-
"\xB8\x3\x2\x2\x2\xB9\xBA\x3\x2\x2\x2\xBA\xBB\x3\x2\x2\x2\xBB\xBD\a\xF4"+
5446+
"\x2\x2\x2\xB6\xC1\a\xF2\x2\x2\xB7\xB9\a\xE1\x2\x2\xB8\xBA\x5n\x38\x2\xB9"+
5447+
"\xB8\x3\x2\x2\x2\xB9\xBA\x3\x2\x2\x2\xBA\xBB\x3\x2\x2\x2\xBB\xBD\a\xF2"+
54495448
"\x2\x2\xBC\xBE\x5n\x38\x2\xBD\xBC\x3\x2\x2\x2\xBD\xBE\x3\x2\x2\x2\xBE"+
54505449
"\xBF\x3\x2\x2\x2\xBF\xC1\a\xE2\x2\x2\xC0\xAB\x3\x2\x2\x2\xC0\xAC\x3\x2"+
54515450
"\x2\x2\xC0\xB6\x3\x2\x2\x2\xC0\xB7\x3\x2\x2\x2\xC1\x1B\x3\x2\x2\x2\xC2"+
@@ -5525,18 +5524,18 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) {
55255524
"\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x181\x3\x2\x2\x2\x180\x182\x5"+
55265525
"n\x38\x2\x181\x180\x3\x2\x2\x2\x181\x182\x3\x2\x2\x2\x182\x183\x3\x2\x2"+
55275526
"\x2\x183\x19B\a\xDB\x2\x2\x184\x185\f\n\x2\x2\x185\x186\a-\x2\x2\x186"+
5528-
"\x19B\x5\x6\x4\x2\x187\x188\f\t\x2\x2\x188\x18A\a\xF0\x2\x2\x189\x18B"+
5527+
"\x19B\x5\x6\x4\x2\x187\x188\f\t\x2\x2\x188\x18A\a\xEF\x2\x2\x189\x18B"+
55295528
"\x5n\x38\x2\x18A\x189\x3\x2\x2\x2\x18A\x18B\x3\x2\x2\x2\x18B\x18C\x3\x2"+
55305529
"\x2\x2\x18C\x18D\a-\x2\x2\x18D\x19B\x5\x6\x4\x2\x18E\x18F\f\b\x2\x2\x18F"+
5531-
"\x190\a,\x2\x2\x190\x19B\x5\x6\x4\x2\x191\x192\f\a\x2\x2\x192\x193\a\xF0"+
5530+
"\x190\a,\x2\x2\x190\x19B\x5\x6\x4\x2\x191\x192\f\a\x2\x2\x192\x193\a\xEF"+
55325531
"\x2\x2\x193\x194\a,\x2\x2\x194\x19B\x5\x6\x4\x2\x195\x196\f\x6\x2\x2\x196"+
5533-
"\x197\a\xF0\x2\x2\x197\x198\a,\x2\x2\x198\x199\a\xF0\x2\x2\x199\x19B\x5"+
5532+
"\x197\a\xEF\x2\x2\x197\x198\a,\x2\x2\x198\x199\a\xEF\x2\x2\x199\x19B\x5"+
55345533
"\x6\x4\x2\x19A\x175\x3\x2\x2\x2\x19A\x184\x3\x2\x2\x2\x19A\x187\x3\x2"+
55355534
"\x2\x2\x19A\x18E\x3\x2\x2\x2\x19A\x191\x3\x2\x2\x2\x19A\x195\x3\x2\x2"+
55365535
"\x2\x19B\x19E\x3\x2\x2\x2\x19C\x19A\x3\x2\x2\x2\x19C\x19D\x3\x2\x2\x2"+
55375536
"\x19D)\x3\x2\x2\x2\x19E\x19C\x3\x2\x2\x2\x19F\x1A0\x5(\x15\x2\x1A0\x1A1"+
55385537
"\a-\x2\x2\x1A1\x1A2\x5\x6\x4\x2\x1A2\x1AC\x3\x2\x2\x2\x1A3\x1A4\x5(\x15"+
5539-
"\x2\x1A4\x1A6\a\xF0\x2\x2\x1A5\x1A7\x5n\x38\x2\x1A6\x1A5\x3\x2\x2\x2\x1A6"+
5538+
"\x2\x1A4\x1A6\a\xEF\x2\x2\x1A5\x1A7\x5n\x38\x2\x1A6\x1A5\x3\x2\x2\x2\x1A6"+
55405539
"\x1A7\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\a-\x2\x2\x1A9\x1AA\x5"+
55415540
"\x6\x4\x2\x1AA\x1AC\x3\x2\x2\x2\x1AB\x19F\x3\x2\x2\x2\x1AB\x1A3\x3\x2"+
55425541
"\x2\x2\x1AC+\x3\x2\x2\x2\x1AD\x1AF\x5(\x15\x2\x1AE\x1B0\x5n\x38\x2\x1AF"+
@@ -5547,9 +5546,9 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) {
55475546
"\x1B8\x3\x2\x2\x2\x1B9\x1BA\x3\x2\x2\x2\x1BA\x1BB\x3\x2\x2\x2\x1BB\x1BC"+
55485547
"\a\xDB\x2\x2\x1BC-\x3\x2\x2\x2\x1BD\x1BE\x5(\x15\x2\x1BE\x1BF\a,\x2\x2"+
55495548
"\x1BF\x1C0\x5\x6\x4\x2\x1C0\x1CD\x3\x2\x2\x2\x1C1\x1C2\x5(\x15\x2\x1C2"+
5550-
"\x1C3\a\xF0\x2\x2\x1C3\x1C4\a,\x2\x2\x1C4\x1C5\x5\x6\x4\x2\x1C5\x1CD\x3"+
5551-
"\x2\x2\x2\x1C6\x1C7\x5(\x15\x2\x1C7\x1C8\a\xF0\x2\x2\x1C8\x1C9\a,\x2\x2"+
5552-
"\x1C9\x1CA\a\xF0\x2\x2\x1CA\x1CB\x5\x6\x4\x2\x1CB\x1CD\x3\x2\x2\x2\x1CC"+
5549+
"\x1C3\a\xEF\x2\x2\x1C3\x1C4\a,\x2\x2\x1C4\x1C5\x5\x6\x4\x2\x1C5\x1CD\x3"+
5550+
"\x2\x2\x2\x1C6\x1C7\x5(\x15\x2\x1C7\x1C8\a\xEF\x2\x2\x1C8\x1C9\a,\x2\x2"+
5551+
"\x1C9\x1CA\a\xEF\x2\x2\x1CA\x1CB\x5\x6\x4\x2\x1CB\x1CD\x3\x2\x2\x2\x1CC"+
55535552
"\x1BD\x3\x2\x2\x2\x1CC\x1C1\x3\x2\x2\x2\x1CC\x1C6\x3\x2\x2\x2\x1CD/\x3"+
55545553
"\x2\x2\x2\x1CE\x1CF\x5\x32\x1A\x2\x1CF\x31\x3\x2\x2\x2\x1D0\x1D2\x5\x34"+
55555554
"\x1B\x2\x1D1\x1D0\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2"+

0 commit comments

Comments
 (0)