public void Get_Returns_Same_Id_For_Same_Block() { var block = new TemporaryBlock(); blockId.Get(block).Should().Be("0"); blockId.Get(block).Should().Be("0"); blockId.Get(block).Should().Be("0"); }
public UCFG Build(SemanticModel semanticModel, SyntaxNode syntaxNode, IMethodSymbol methodSymbol, IControlFlowGraph cfg) { var ucfg = new UCFG { MethodId = GetMethodId(methodSymbol), Location = GetLocation(syntaxNode), }; ucfg.BasicBlocks.AddRange(cfg.Blocks.Select(b => CreateBasicBlock(b, semanticModel))); ucfg.Parameters.AddRange(methodSymbol.GetParameters().Select(p => p.Name)); if (syntaxNode is BaseMethodDeclarationSyntax methodDeclaration && EntryPointRecognizer.IsEntryPoint(methodSymbol)) { var entryPointBlock = CreateEntryPointBlock(semanticModel, methodDeclaration, methodSymbol, blockId.Get(cfg.EntryBlock)); ucfg.BasicBlocks.Add(entryPointBlock); ucfg.Entries.Add(entryPointBlock.Id); }