using System.Collections.Generic; using System.IO; namespace Semmle.Extraction.CIL.Entities { /// /// A parameter entity. /// internal sealed class Parameter : LabelledEntity { private readonly IParameterizable parameterizable; private readonly int index; private readonly Type type; public Parameter(Context cx, IParameterizable p, int i, Type t) : base(cx) { parameterizable = p; index = i; type = t; } public override void WriteId(TextWriter trapFile) { trapFile.WriteSubId(parameterizable); trapFile.Write('_'); trapFile.Write(index); trapFile.Write(";cil-parameter"); } public override bool Equals(object? obj) { return obj is Parameter param && parameterizable.Equals(param.parameterizable) && index == param.index; } public override int GetHashCode() { return 23 * parameterizable.GetHashCode() + index; } public override IEnumerable Contents { get { yield return Tuples.cil_parameter(this, parameterizable, index, type); } } } }