Пытаюсь боросться с напастью — при редактировании текста в #develop сообщаю компилятору об изменениях (приходится подгонять #develop-овскую модель документа к вижуалстудийной) и в некоторых случаях мне выскакивает Assertion Failure сообщение:
---- DEBUG ASSERTION FAILED ----
---- Assert Short Message ----
Location in deleted text!
---- Assert Long Message ----
at Completion._N_relocatePoint_44696(TextPoint point, RelocationInfo info)
at Completion.Relocate(Location loc, RelocationInfo info)
at Engine.TryRelocate(ISource source) C:\!Proj\nemerle\VsIntegration\Nemerle.Compiler.Utils\Nemerle.Completion2\Engine\BackgroundWorks\Engine-UpdateCompileUnit.n(74)
at Engine.UpdateCompileUnit(AsyncRequest request) C:\!Proj\nemerle\VsIntegration\Nemerle.Compiler.Utils\Nemerle.Completion2\Engine\BackgroundWorks\Engine-UpdateCompileUnit.n(213)
at AsyncRequest.DoWork() C:\!Proj\nemerle\VsIntegration\Nemerle.Compiler.Utils\Async\AsyncRequest\AsyncRequest.n(65)
at AsyncWorker.ThreadProc() C:\!Proj\nemerle\VsIntegration\Nemerle.Compiler.Utils\Async\AsyncWorker.n(118)
at ThreadHelper.ThreadStart_Context(Object state)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at ThreadHelper.ThreadStart()
При том, я заметил, что в Nemerle Studio это сообщение также появляется, но окошка с Assertion-ом не вываливается, просто текст в трэйс-логе. Я так понял, что координаты измененного блока в #develop я вычисляю корректно, раз проблема появляется не только в моем коде.
Тестовые примеры:
1)
using System;
using System.Console;
using SCG = System.Collections.Generic;
using Nemerle.Assertions;
using Nemerle.Text;
using Nemerle.Utility;
namespace test111 {
module Program {
Main() : void {|<<< выделить и удалить от сюда
до сюда >>>|def a = ["Hello", "world", "!"];
WriteLine(NString.Concat(" ", a));
WriteLine("Press any key to continue...");
_ = ReadKey(true);
}
}
}
2) Добавить строку в начале файла и удалить ее:
|<<< выделить и удалить
>>>|using System;
using System.Console;
using SCG = System.Collections.Generic;
Ну и последнее, как можно сделать так, чтобы assertion-окно не вываливалось юзеру, например появлялось только в Debug билде.