Unify item parsing and item matching clones
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 133
Description
[GetItemProvenance](https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L1332-L1360), [GetAllGlobs](https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L1096-L1111), and match based evaluation time item operations (update, remove) have been changed to use the same [itemspec representation](https://github.com/Microsoft/msbuild/blob/master/src/Build/Evaluation/ItemSpec.cs) and item matching logic. It would be nice if [build time match based item operations](https://github.com/Microsoft/msbuild/blob/d38f1c59428795e3a125d99742141646613a6eff/src/Build/BackEnd/Components/RequestBuilder/IntrinsicTasks/ItemGroupIntrinsicTask.cs#L454) also reuse this code to avoid behaviour drift. Right now eval time matching has some extra capabilities that makes it behave differently from build time matching (e.g. the ability to compare absolute paths with relative paths).
Clones that parse / expand itemspecs or match items:
- [ ] https://github.com/Microsoft/msbuild/blob/31ccfa3cc54d20da3edf0d862280d2a0e572f80a/src/XMakeBuildEngine/Definition/Project.cs#L2181-L2200
- [ ] https://github.com/Microsoft/msbuild/blob/master/src/XMakeBuildEngine/BackEnd/Components/RequestBuilder/IntrinsicTasks/ItemGroupIntrinsicTask.cs#L448-L511
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.