internal ObjectData TryDereferenceAnyMany(Language.Environment env) { ObjectData self = this; while (env.IsPointerLikeOfType(self.RunTimeTypeInstance)) { self = self.DereferencedOnce(); } return(self); }
internal bool TryDereferenceAnyOnce(Language.Environment env, out ObjectData dereferenced) { if (env.IsPointerLikeOfType(this.RunTimeTypeInstance)) { dereferenced = this.DereferencedOnce(); return(true); } else { dereferenced = null; return(false); } }
internal ObjectData TryDereferenceAnyMany(Language.Environment env, int count) { ObjectData self = this; for (int i = 0; i < count; ++i) { if (!env.IsPointerLikeOfType(self.RunTimeTypeInstance)) { break; } else { self = self.DereferencedOnce(); } } return(self); }