/// <summary> /// Rebuild the given parameters list using the merged parameters. /// </summary> internal static void RebuildParameterList( Function fun, int paramsUsage, List<MergeParameter> mergedParams ) { //Delete the old merged paramters. for ( int i = 0; i < mergedParams.Count; ++i ) { var curMergeParamter = mergedParams[ i ]; for ( int j = 0; j < curMergeParamter.SourceParameterCount; ++j ) { Parameter curSrcParam = curMergeParamter.SourceParameter[ j ]; if ( paramsUsage == (int)Operand.OpSemantic.Out ) { fun.DeleteOutputParameter( curSrcParam ); } else if ( paramsUsage == (int)Operand.OpSemantic.In ) { fun.DeleteInputParameter( curSrcParam ); } } } //Add the new combined paramters. for ( int i = 0; i < mergedParams.Count; ++i ) { MergeParameter curMergeParameter = mergedParams[ i ]; if ( paramsUsage == (int)Operand.OpSemantic.Out ) { fun.AddOutputParameter( curMergeParameter.GetDestinationParameter( paramsUsage, i ) ); } else if ( paramsUsage == (int)Operand.OpSemantic.In ) { fun.AddInputParameter( curMergeParameter.GetDestinationParameter( paramsUsage, i ) ); } } }