/// <summary> /// Creates a qualifier value given a qualifier id. /// </summary> public static QualifierValue Create(QualifierId qualifierId, QualifierTable qualifierTable, StringTable stringTable) { Contract.Requires(qualifierId.IsValid); Contract.Requires(qualifierTable != null); Contract.Requires(qualifierTable.IsValidQualifierId(qualifierId)); if (qualifierTable.EmptyQualifierId == qualifierId) { return(CreateEmpty(qualifierTable)); } Qualifier qualifier = qualifierTable.GetQualifier(qualifierId); var bindings = new List <Binding>(qualifier.Keys.Count); for (int i = 0; i < qualifier.Keys.Count; ++i) { bindings.Add(new Binding(qualifier.Keys[i], qualifier.Values[i].ToString(stringTable), location: default(LineInfo))); } return(new QualifierValue(ObjectLiteral.Create(bindings, default(LineInfo), default(AbsolutePath)), qualifierId)); }
/// <nodoc/> public static ObjectLiteral Create(IReadOnlyList <Binding> bindings, LineInfo location, AbsolutePath path, string returnType) { return(new LazyEvalObjectLiteral(ObjectLiteral.Create(bindings, location, path), returnType)); }