public void VisitBlockStatement_TypeofConstantsIncluded()
        {
            //-- arrange

            var block = new BlockStatement(
                new ReturnStatement {
                Expression = new ConstantExpression {
                    Value = typeof(IDisposable)
                }
            },
                new ReturnStatement {
                Expression = new ConstantExpression {
                    Value = (TypeMember)typeof(IFormattable)
                }
            }
                );

            var foundTypes = new HashSet <TypeMember>();
            var visitor    = new TypeReferenceStatementVisitor(foundTypes);

            //-- act

            block.AcceptVisitor(visitor);

            //-- assert

            foundTypes.Should().BeEquivalentTo(new TypeMember[] { typeof(IDisposable), typeof(IFormattable) });
        }
        public void VisitBlockStatement_LocalVariableTypesIncluded()
        {
            //-- arrange

            var block = new BlockStatement(
                new VariableDeclarationStatement {
                Variable = new LocalVariable {
                    Name = "x", Type = typeof(IDisposable)
                }
            }
                );

            var foundTypes = new HashSet <TypeMember>();
            var visitor    = new TypeReferenceStatementVisitor(foundTypes);

            //-- act

            block.AcceptVisitor(visitor);

            //-- assert

            foundTypes.Should().BeEquivalentTo(new TypeMember[] { typeof(IDisposable) });
        }