/// <summary> /// Constructs a new internal enumerator. /// </summary> /// <param name="collection">The parent collection.</param> /// <param name="currentPredicate">The view predicate.</param> internal Enumerator( MethodMapping <Method> .ReadOnlyCollection collection, TPredicate currentPredicate) { enumerator = collection.GetEnumerator(); predicate = currentPredicate; }
internal UnsafeMethodCollection( IRContext context, MethodMapping <Method> .ReadOnlyCollection collection, TPredicate predicate) { Debug.Assert(context != null, "Invalid context"); Context = context; Collection = collection; Predicate = predicate; }
/// <summary> /// Creates a new rebuilder that works on the given scope. /// </summary> /// <param name="parameterMapping">The target value of every parameter.</param> /// <param name="scope">The used scope.</param> /// <param name="methodMapping">The method mapping.</param> /// <returns>The created rebuilder.</returns> public IRRebuilder CreateRebuilder( ParameterMapping parameterMapping, Scope scope, MethodMapping methodMapping) { Debug.Assert(parameterMapping.Method == scope.Method, "Invalid parameter mapping"); Debug.Assert(scope != null, "Invalid scope"); Debug.Assert(scope.Method != Method, "Cannot rebuild a function into itself"); return(new IRRebuilder( this, parameterMapping, scope, methodMapping)); }
/// <summary> /// Creates a new rebuilder that works on the given scope. /// </summary> /// <param name="parameterMapping"> /// The target value of every parameter. /// </param> /// <param name="scope">The used scope.</param> /// <param name="methodMapping">The method mapping.</param> /// <returns>The created rebuilder.</returns> public IRRebuilder CreateRebuilder( ParameterMapping parameterMapping, Scope scope, MethodMapping methodMapping) { this.Assert(parameterMapping.Method == scope.Method); this.Assert(scope != null); this.Assert(scope.Method != Method); return(new IRRebuilder( this, parameterMapping, scope, methodMapping)); }
/// <summary> /// Creates a new rebuilder that works on the given scope. /// </summary> /// <typeparam name="TMode">The rebuilder mode.</typeparam> /// <param name="parameterMapping"> /// The target value of every parameter. /// </param> /// <param name="methodMapping">The method mapping.</param> /// <param name="blocks">The block collection.</param> /// <returns>The created rebuilder.</returns> public IRRebuilder CreateRebuilder <TMode>( ParameterMapping parameterMapping, MethodMapping methodMapping, in BasicBlockCollection <ReversePostOrder, Forwards> blocks)
internal ReadOnlyCollection(MethodMapping <T> parent) { Parent = parent; }