public virtual object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
			Debug.Assert((defaultValueExpression != null));
			Debug.Assert((defaultValueExpression.TypeReference != null));
			return defaultValueExpression.TypeReference.AcceptVisitor(this, data);
		}
		public virtual object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
			throw new global::System.NotImplementedException("DefaultValueExpression");
		}
		public virtual object TrackedVisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
			return base.VisitDefaultValueExpression(defaultValueExpression, data);
		}
		public virtual object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
			Debug.Assert((defaultValueExpression != null));
			Debug.Assert((defaultValueExpression.TypeReference != null));
			nodeStack.Push(defaultValueExpression.TypeReference);
			defaultValueExpression.TypeReference.AcceptVisitor(this, data);
			defaultValueExpression.TypeReference = ((TypeReference)(nodeStack.Pop()));
			return null;
		}
		public sealed override object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
			this.BeginVisit(defaultValueExpression);
			object result = this.TrackedVisitDefaultValueExpression(defaultValueExpression, data);
			this.EndVisit(defaultValueExpression);
			return result;
		}