public void DeclarationFinderCanCopeWithMultipleModulesImplementingTheSameInterface() { var project = GetTestProject("testProject"); var interf = GetTestClassModule(project, "interface"); var member = GetTestFunction(interf, "testMember", Accessibility.Public); var implementingClass1 = GetTestClassModule(project, "implementingClass1"); var implementingClass2 = GetTestClassModule(project, "implementingClass2"); var implementsContext1 = new VBAParser.ImplementsStmtContext(null, 0); var implementsContext2 = new VBAParser.ImplementsStmtContext(null, 0); AddReference(interf, implementingClass1, implementsContext1); AddReference(interf, implementingClass1, implementsContext2); var declarations = new List <Declaration> { interf, member, implementingClass1, implementingClass2 }; DeclarationFinder finder = new DeclarationFinder(declarations, new List <Rubberduck.Parsing.Annotations.IAnnotation>(), new List <UnboundMemberDeclaration>()); var interfaceDeclarations = finder.FindAllInterfaceMembers().ToList(); Assert.AreEqual(1, interfaceDeclarations.Count()); }
public override void EnterImplementsStmt(VBAParser.ImplementsStmtContext context) { _resolver.Resolve(context); }
public override void EnterImplementsStmt(VBAParser.ImplementsStmtContext context) { // The expression will be later resolved to the actual declaration. Have to split the work up because we have to gather/create all declarations first. ((ClassModuleDeclaration)_moduleDeclaration).AddSupertype(context.expression().GetText()); }
public void Resolve(VBAParser.ImplementsStmtContext context) { ResolveType(context.expression()); }
public void Resolve(VBAParser.ImplementsStmtContext context) { ResolveInternal(context.ambiguousIdentifier(), _currentScope); }