private IEnumerable<IEdmEnumMember> ComputeMembers()
		{
			IEdmEnumMember csdlSemanticsEnumMember;
			List<IEdmEnumMember> edmEnumMembers = new List<IEdmEnumMember>();
			long value = (long)-1;
			foreach (CsdlEnumMember member in this.enumeration.Members)
			{
				long? nullable = member.Value;
				if (nullable.HasValue)
				{
					long? value1 = member.Value;
					value = value1.Value;
					csdlSemanticsEnumMember = new CsdlSemanticsEnumMember(this, member);
					csdlSemanticsEnumMember.SetIsValueExplicit(this.Model, new bool?(true));
				}
				else
				{
					if (value >= 0x7fffffffffffffffL)
					{
						CsdlSemanticsEnumTypeDefinition csdlSemanticsEnumTypeDefinition = this;
						string name = member.Name;
						EdmError[] edmErrorArray = new EdmError[1];
						EdmError[] edmError = edmErrorArray;
						int num = 0;
						EdmLocation location = member.Location;
						EdmLocation edmLocation = location;
						if (location == null)
						{
							edmLocation = base.Location;
						}
						edmError[num] = new EdmError(edmLocation, EdmErrorCode.EnumMemberValueOutOfRange, Strings.CsdlSemantics_EnumMemberValueOutOfRange);
						csdlSemanticsEnumMember = new BadEnumMember(csdlSemanticsEnumTypeDefinition, name, edmErrorArray);
					}
					else
					{
						long? nullable1 = new long?(value + (long)1);
						value = nullable1.Value;
						member.Value = nullable1;
						csdlSemanticsEnumMember = new CsdlSemanticsEnumMember(this, member);
					}
					csdlSemanticsEnumMember.SetIsValueExplicit(this.Model, new bool?(false));
				}
				edmEnumMembers.Add(csdlSemanticsEnumMember);
			}
			return edmEnumMembers;
		}
        private IEnumerable<IEdmEnumMember> ComputeMembers()
        {
            var members = new List<IEdmEnumMember>();

            // Walk the members and assign implicit values where needed.
            long previousValue = -1;
            foreach (CsdlEnumMember member in this.enumeration.Members)
            {
                IEdmEnumMember semanticsMember;
                long? implicitValue = null;
                if (!member.Value.HasValue)
                {
                    if (previousValue < long.MaxValue)
                    {
                        implicitValue = previousValue + 1;
                        previousValue = implicitValue.Value;
                        member.Value = implicitValue;
                        semanticsMember = new CsdlSemanticsEnumMember(this, member);
                    }
                    else
                    {
                        semanticsMember = new BadEnumMember(this, member.Name, new EdmError[] { new EdmError(member.Location ?? this.Location, EdmErrorCode.EnumMemberValueOutOfRange, Edm.Strings.CsdlSemantics_EnumMemberValueOutOfRange) });
                    }

                    semanticsMember.SetIsValueExplicit(this.Model, false);
                }
                else
                {
                    previousValue = member.Value.Value;
                    semanticsMember = new CsdlSemanticsEnumMember(this, member);
                    semanticsMember.SetIsValueExplicit(this.Model, true);
                }

                members.Add(semanticsMember);
            }

            return members;
        }