public NewSyntax(NameSyntax type, IEnumerable<ExpressionSyntax> arguments)
        {
            Requires.NotNull(type, nameof(type));

            Type = type;
            Arguments = arguments.ToList();
        }
 public LookupResult Lookup(NameSyntax name, Package fromPackage)
 {
     return name.Match().Returning<LookupResult>()
         .With<QualifiedNameSyntax>(qualifiedName =>
         {
             var context = Lookup(qualifiedName.Left, fromPackage);
             return context.Lookup(qualifiedName.Right, fromPackage);
         })
         .With<IdentifierNameSyntax>(i => Lookup(i, fromPackage))
         .Exhaustive();
 }
 public Name(NameSyntax syntax, Package containingPackage)
     : base(syntax, containingPackage)
 {
 }
 public override LookupResult LookupInGlobalNamespace(NameSyntax name, Package fromPackage)
 {
     return Lookup(name, fromPackage);
 }
        public UsingSyntax(NameSyntax name)
        {
            Requires.NotNull(name, nameof(name));

            Name = name;
        }
 public virtual LookupResult LookupInGlobalNamespace(NameSyntax name, Package fromPackage)
 {
     return ContainingScope.LookupInGlobalNamespace(name, fromPackage);
 }