コード例 #1
0
        public void AfterVisitingNamespaceASymbolIsVisited()
        {
            _NamespaceSymbol.Setup(x => x.GetMembers()).Returns(new[] { _Symbols.First().Object });

            var sut = new RoslynVisitor(null);

            sut.VisitNamespace(_NamespaceSymbol.Object);

            _Symbols.First().Verify(x => x.Accept(sut));
        }
コード例 #2
0
        public void AfterVisitingNamespaceAllMemberSymbolsAreVisited()
        {
            _NamespaceSymbol.Setup(x => x.GetMembers()).Returns(_Symbols.Select(x => x.Object));

            var sut = new RoslynVisitor(null);

            sut.VisitNamespace(_NamespaceSymbol.Object);

            foreach (var symbol in _Symbols)
            {
                symbol.Verify(x => x.Accept(sut));
            }
        }
コード例 #3
0
        /// <summary>
        /// LIM ASG building phase
        /// </summary>
        /// <param name="map">Roslyn node and C# ASG ids map</param>
        /// <param name="crossEdgeFiller">C# ASG cross edge filler object</param>
        private static void BuildLIMASG(Dictionary <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode, uint> map, CrossEdgeFiller crossEdgeFiller)
        {
            if (!MainDeclaration.Instance.LocalMap.ContainsKey(MainDeclaration.Instance.Model.Compilation.Assembly.GlobalNamespace))
            {
                MainDeclaration.Instance.LocalMap.Add(MainDeclaration.Instance.Model.Compilation.Assembly.GlobalNamespace, MainDeclaration.Instance.LimFactory.Root);
                MainDeclaration.Instance.Root = MainDeclaration.Instance.LimFactory.getRef(MainDeclaration.Instance.LimFactory.Root) as Lim.Asg.Nodes.Logical.Package;
                SymbolBuilder.BuildDispatch <Lim.Asg.Nodes.Logical.Package, INamespaceSymbol>(MainDeclaration.Instance.Model.Compilation.Assembly.GlobalNamespace);
                MainDeclaration.Instance.UsesStack.Pop();
            }

            Commons.Common.Safe_Edge(MainDeclaration.Instance.Root, "BelongsTo", MainDeclaration.Instance.Component.Id);

            if (!GetAlreadyContain(MainDeclaration.Instance.Component))
            {
                MainDeclaration.Instance.LimFactory.ComponentRootRef.addContains(MainDeclaration.Instance.Component);
            }

            MainDeclaration.Instance.RoslynWatch.Start();
            var root = MainDeclaration.Instance.Model.SyntaxTree.GetRoot();

            MainDeclaration.Instance.RoslynWatch.Stop();
            //Visitor.Visit(root, ref map, crossEdgeFiller);
            RoslynVisitor.GetInstance(map, crossEdgeFiller).Visit(root);
        }