/**
* Copyright (C) 2018 Glayzzle (BSD3 License)
* @authors https://github.com/glayzzle/php-parser/graphs/contributors
* @url http://glayzzle.com
*/
"use strict";
const Declaration = require("./declaration");
const KIND = "parameter";
/**
* Defines a function parameter
* @constructor Parameter
* @extends {Declaration}
* @property {Identifier|null} type
* @property {Node|null} value
* @property {boolean} byref
* @property {boolean} variadic
* @property {boolean} nullable
*/
module.exports = Declaration.extends(KIND, function Parameter(
name,
type,
value,
isRef,
isVariadic,
nullable,
docs,
location
) {
Declaration.apply(this, [KIND, name, docs, location]);
this.value = value;
this.type = type;
this.byref = isRef;
this.variadic = isVariadic;
this.nullable = nullable;
});