View Issue Details

IDProjectCategoryView StatusLast Update
2149ConvertrDiff Enginepublic2022-11-20 22:12
ReporterChris Graham Assigned ToGuest  
PrioritynormalSeverityfeature 
Status newResolutionopen 
Summary2149: Intelligence with StringReplace* ops
DescriptionIf complete coverage in a StringReplace op can't be found, the engine will have to use individual StringReplaceAfter/StringReplaceBefore/StringReplaceBetween ops to get the necessary specificity.

However, there may be a middle ground in some cases.

For example:

a
b
a
b
a
-->
ax
b
ax
b
a

In this case, StringReplace of a to ax is not going to work, because there is one non-compliant case. So we may use StringReplaceBefore instead.

It wouldn't work automatically to cover these in a single case (I think) because we'd normally look for the StringReplaceBefore that captures a single diff line and only that line, i.e. over-specifying it, and then we'd follow on to find the remaining case with the second opcode.

However, obviously a single StringReplaceBefore op would work (replace any "a" line before a "b" line line with an "ax" line).
Additional InformationMake sure unit tests exist to capture this.

Don't take my above wording or example as gospel. The key issue here is ensuring that our engine is smart enough to have both correctness and conciseness in its choice of ops.
TagsNo tags attached.
Attach Tags
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Relationships

child of 2147 Not AssignedGuest Implement StringReplace* opcodes 

Activities

There are no notes attached to this issue.

Add Note

View Status
Note
Upload Files
Maximum size: 32,768 KiB

Attach files by dragging & dropping, selecting or pasting them.
You are not logged in You are not logged in. This means you will not get any e-mail notifications. And if you reply, we will not know for sure you are the original poster of the issue.

Issue History

Date Modified Username Field Change
2022-11-20 22:12 Chris Graham Assigned To user4145 =>
2022-11-20 22:12 Chris Graham Status Assigned => Not Assigned