Rebase Remove function implementation onto latest main #2996
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rebases the Remove function implementation from PR #2808 onto the latest main branch, resolving conflicts and adapting to interface changes that occurred since the original PR.
Core Changes
Interface Migration
RemoveImplandRemoveAllImplfromIAsyncTexlFunction3toIFunctionInvokerMutationUtils.RemoveCoresignature from(FormulaType irContext, FormulaValue[] args)to(FunctionInvokeInfo invokeInfo)Duplicate Removal Fix
CollectionTableValue.RemoveAsyncto useHashSet<int>for tracking deletions instead ofList<T>Enum Support
RemoveFlagsenum withFirstandAlloptionsBuiltInEnums,LanguageConstants, andEnumStoreBuilderFunction Registration
PowerFxConfigExtensionsto registerRemoveImplandRemoveAllImplinstead of baseRemoveFunctionTest Updates
PADIntegrationTeststo useRemoveFlags.Allenum instead of string"All"Remove_V1Compact.txttest casesExample Usage
Remaining Work
Resource strings in
PowerFxResources.en-US.resxneed to be added for proper localization and error messages. The implementation functions correctly without them.See
REBASE_STATUS.mdfor complete technical details on migration decisions and changes made.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.