Skip to content

Commit 4ed97c1

Browse files
authored
[lldb] Add type hints for gdbclientutils.py when base class returns Literal[T] (#170182)
Pyright automatically deduces these functions to return `Literal["foo"]` since the implementation returns "foo". This causes any overload that returns a different literal or a string to report that they're overloaded in an incompatible way. By correctly annotating them as returning str, the overloads can return different strings without this error I was encountering these a lot while writing tests for my downstream target
1 parent e0e897e commit 4ed97c1

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

lldb/packages/Python/lldbsuite/test/gdbclientutils.py

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -264,31 +264,31 @@ def _respond_impl(self, packet) -> Union[Response, List[Response]]:
264264

265265
return self.other(packet)
266266

267-
def qsProcessInfo(self):
267+
def qsProcessInfo(self) -> str:
268268
return "E04"
269269

270-
def qfProcessInfo(self, packet):
270+
def qfProcessInfo(self, packet) -> str:
271271
return "E04"
272272

273-
def jGetLoadedDynamicLibrariesInfos(self, packet):
273+
def jGetLoadedDynamicLibrariesInfos(self, packet) -> str:
274274
return ""
275275

276-
def qGetWorkingDir(self):
276+
def qGetWorkingDir(self) -> str:
277277
return "2f"
278278

279-
def qOffsets(self):
279+
def qOffsets(self) -> str:
280280
return ""
281281

282-
def qProcessInfo(self):
282+
def qProcessInfo(self) -> str:
283283
return ""
284284

285-
def qHostInfo(self):
285+
def qHostInfo(self) -> str:
286286
return "ptrsize:8;endian:little;"
287287

288-
def qEcho(self, num: int):
288+
def qEcho(self, num: int) -> str:
289289
return "E04"
290290

291-
def qQueryGDBServer(self):
291+
def qQueryGDBServer(self) -> str:
292292
return "E04"
293293

294294
def interrupt(self):
@@ -300,10 +300,10 @@ def cont(self):
300300
def vCont(self, packet):
301301
raise self.UnexpectedPacketException()
302302

303-
def A(self, packet):
303+
def A(self, packet) -> str:
304304
return ""
305305

306-
def D(self, packet):
306+
def D(self, packet) -> str:
307307
return "OK"
308308

309309
def readRegisters(self) -> str:
@@ -312,40 +312,40 @@ def readRegisters(self) -> str:
312312
def readRegister(self, register: int) -> str:
313313
return "00000000"
314314

315-
def writeRegisters(self, registers_hex):
315+
def writeRegisters(self, registers_hex) -> str:
316316
return "OK"
317317

318-
def writeRegister(self, register, value_hex):
318+
def writeRegister(self, register, value_hex) -> str:
319319
return "OK"
320320

321-
def readMemory(self, addr, length):
321+
def readMemory(self, addr, length) -> str:
322322
return "00" * length
323323

324-
def x(self, addr, length):
324+
def x(self, addr, length) -> str:
325325
return ""
326326

327-
def writeMemory(self, addr, data_hex):
327+
def writeMemory(self, addr, data_hex) -> str:
328328
return "OK"
329329

330-
def qSymbol(self, symbol_args):
330+
def qSymbol(self, symbol_args) -> str:
331331
return "OK"
332332

333-
def qSupported(self, client_supported):
333+
def qSupported(self, client_supported) -> str:
334334
return "qXfer:features:read+;PacketSize=3fff;QStartNoAckMode+"
335335

336-
def qfThreadInfo(self):
336+
def qfThreadInfo(self) -> str:
337337
return "l"
338338

339-
def qsThreadInfo(self):
339+
def qsThreadInfo(self) -> str:
340340
return "l"
341341

342-
def qC(self):
342+
def qC(self) -> str:
343343
return "QC0"
344344

345-
def QEnableErrorStrings(self):
345+
def QEnableErrorStrings(self) -> str:
346346
return "OK"
347347

348-
def haltReason(self):
348+
def haltReason(self) -> str:
349349
# SIGINT is 2, return type is 2 digit hex string
350350
return "S02"
351351

@@ -360,50 +360,50 @@ def _qXferResponse(self, data, has_more):
360360
def vAttach(self, pid):
361361
raise self.UnexpectedPacketException()
362362

363-
def selectThread(self, op, thread_id):
363+
def selectThread(self, op, thread_id) -> str:
364364
return "OK"
365365

366-
def setBreakpoint(self, packet):
366+
def setBreakpoint(self, packet) -> str:
367367
raise self.UnexpectedPacketException()
368368

369-
def threadStopInfo(self, threadnum):
369+
def threadStopInfo(self, threadnum) -> str:
370370
return ""
371371

372-
def other(self, packet):
372+
def other(self, packet) -> str:
373373
# empty string means unsupported
374374
return ""
375375

376-
def QThreadSuffixSupported(self):
376+
def QThreadSuffixSupported(self) -> str:
377377
return ""
378378

379-
def QListThreadsInStopReply(self):
379+
def QListThreadsInStopReply(self) -> str:
380380
return ""
381381

382-
def qMemoryRegionInfo(self, addr):
382+
def qMemoryRegionInfo(self, addr) -> str:
383383
return ""
384384

385-
def qPathComplete(self):
385+
def qPathComplete(self) -> str:
386386
return ""
387387

388-
def vFile(self, packet):
388+
def vFile(self, packet) -> str:
389389
return ""
390390

391-
def vRun(self, packet):
391+
def vRun(self, packet) -> str:
392392
return ""
393393

394394
def qLaunchGDBServer(self, host):
395395
raise self.UnexpectedPacketException()
396396

397-
def qLaunchSuccess(self):
397+
def qLaunchSuccess(self) -> str:
398398
return ""
399399

400-
def QEnvironment(self, packet):
400+
def QEnvironment(self, packet) -> str:
401401
return "OK"
402402

403-
def QEnvironmentHexEncoded(self, packet):
403+
def QEnvironmentHexEncoded(self, packet) -> str:
404404
return "OK"
405405

406-
def qRegisterInfo(self, num):
406+
def qRegisterInfo(self, num) -> str:
407407
return ""
408408

409409
def k(self):

0 commit comments

Comments
 (0)