Skip to content

Commit 744f444

Browse files
committed
Merge pull request #99 from rainers/anonymous_union
[Completion/Resolver] add completion for members of anonymous unions and structs
2 parents 8b62640 + 001fc2f commit 744f444

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

DParser2/Resolver/ASTScanner/AbstractVisitor.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,10 @@ bool scanChildren(DBlockNode curScope,
314314
if (!CanHandleNode (n as DNode, VisibleMembers, isBaseClass, isMixinAst, takeStaticChildrenOnly, publicImports, scopeIsInInheritanceHierarchy))
315315
continue;
316316

317-
// Add anonymous enums' items
318-
if (n is DEnum && n.NameHash == 0)
317+
// Add anonymous enums',structs' or unions' items
318+
if (((n is DEnum) || (n is DClassLike)) && n.NameHash == 0)
319319
{
320-
var ch2 = PrefilterSubnodes(n as DEnum);
320+
var ch2 = PrefilterSubnodes(n as DBlockNode);
321321
if (ch2 != null)
322322
foundItems |= HandleItems(ch2);
323323
continue;
@@ -1310,7 +1310,9 @@ public static bool CanAddMemberOfType(MemberFilter vis, INode n)
13101310
return (vis & MemberFilter.Templates) != 0;
13111311
case DTokens.Struct:
13121312
case DTokens.Union:
1313-
return (vis & MemberFilter.StructsAndUnions) != 0;
1313+
return dc.IsAnonymous ?
1314+
(vis & MemberFilter.Variables) != 0 :
1315+
(vis & MemberFilter.StructsAndUnions) != 0;
13141316
}
13151317
}
13161318

0 commit comments

Comments
 (0)