Skip to content

Commit 017a754

Browse files
committed
stabilize removing import entries
1 parent e4e2aa8 commit 017a754

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

robotcode/language_server/robotframework/diagnostics/imports_manager.py

+18-12
Original file line numberDiff line numberDiff line change
@@ -607,11 +607,13 @@ async def remove(k: _LibrariesEntryKey, e: _LibrariesEntry) -> None:
607607
if len(e.references) == 0:
608608
self._logger.debug(lambda: f"Remove Library Entry {k}")
609609
async with self._libaries_lock:
610-
e1 = self._libaries.get(k, None)
611-
if e1 == e:
612-
self._libaries.pop(k, None)
610+
if len(e.references) == 0:
611+
e1 = self._libaries.get(k, None)
612+
if e1 == e:
613+
self._libaries.pop(k, None)
613614

614-
await e.invalidate()
615+
await e.invalidate()
616+
self._logger.debug(lambda: f"Library Entry {k} removed")
615617

616618
try:
617619
if asyncio.get_running_loop():
@@ -624,11 +626,13 @@ async def remove(k: _ResourcesEntryKey, e: _ResourcesEntry) -> None:
624626
if len(e.references) == 0:
625627
self._logger.debug(lambda: f"Remove Resource Entry {k}")
626628
async with self._resources_lock:
627-
e1 = self._resources.get(k, None)
628-
if e1 == e:
629-
self._resources.pop(k, None)
629+
if len(e.references) == 0:
630+
e1 = self._resources.get(k, None)
631+
if e1 == e:
632+
self._resources.pop(k, None)
630633

631-
await e.invalidate()
634+
await e.invalidate()
635+
self._logger.debug(lambda: f"Resource Entry {k} removed")
632636

633637
try:
634638
if asyncio.get_running_loop():
@@ -641,11 +645,13 @@ async def remove(k: _VariablesEntryKey, e: _VariablesEntry) -> None:
641645
if len(e.references) == 0:
642646
self._logger.debug(lambda: f"Remove Variables Entry {k}")
643647
async with self._variables_lock:
644-
e1 = self._variables.get(k, None)
645-
if e1 == e:
646-
self._variables.pop(k, None)
648+
if len(e.references) == 0:
649+
e1 = self._variables.get(k, None)
650+
if e1 == e:
651+
self._variables.pop(k, None)
647652

648-
await e.invalidate()
653+
await e.invalidate()
654+
self._logger.debug(lambda: f"Variables Entry {k} removed")
649655

650656
try:
651657
if asyncio.get_running_loop():

0 commit comments

Comments
 (0)