@zzzen/pyright-internal 1.2.0-dev.20260920 → 1.2.0-dev.20261004
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/analyzerNodeInfo.js +7 -2
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +17 -6
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -2
- package/dist/analyzer/checker.js +21 -9
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +2 -0
- package/dist/analyzer/codeFlowEngine.js +162 -20
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +2 -1
- package/dist/analyzer/codeFlowTypes.js +1 -0
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +4 -1
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/operations.js +1 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/overloadResult.d.ts +15 -0
- package/dist/analyzer/overloadResult.js +233 -0
- package/dist/analyzer/overloadResult.js.map +1 -0
- package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
- package/dist/analyzer/overloadResultAdmission.js +448 -0
- package/dist/analyzer/overloadResultAdmission.js.map +1 -0
- package/dist/analyzer/overloadResultController.d.ts +227 -0
- package/dist/analyzer/overloadResultController.js +904 -0
- package/dist/analyzer/overloadResultController.js.map +1 -0
- package/dist/analyzer/overloadResultSelector.d.ts +24 -0
- package/dist/analyzer/overloadResultSelector.js +131 -0
- package/dist/analyzer/overloadResultSelector.js.map +1 -0
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +4 -0
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +39 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +13 -2
- package/dist/analyzer/program.js +102 -47
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -0
- package/dist/analyzer/protocols.js +297 -9
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +6 -2
- package/dist/analyzer/sourceFile.js +9 -3
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/symbolNameUtils.d.ts +1 -0
- package/dist/analyzer/symbolNameUtils.js +5 -0
- package/dist/analyzer/symbolNameUtils.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +4 -0
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.d.ts +4 -0
- package/dist/analyzer/typeCacheUtils.js +36 -0
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeComplexity.js +2 -0
- package/dist/analyzer/typeComplexity.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +10 -1
- package/dist/analyzer/typeEvaluator.js +477 -19
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +31 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +8 -0
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +38 -27
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeWalker.d.ts +2 -1
- package/dist/analyzer/typeWalker.js +12 -0
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +9 -4
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +16 -2
- package/dist/analyzer/types.js +94 -2
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +2 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/extensibility.d.ts +1 -0
- package/dist/common/processUtils.d.ts +9 -1
- package/dist/common/processUtils.js +52 -10
- package/dist/common/processUtils.js.map +1 -1
- package/dist/common/windowsProcessTree.d.ts +4 -0
- package/dist/common/windowsProcessTree.js +47 -0
- package/dist/common/windowsProcessTree.js.map +1 -0
- package/dist/common/windowsProcessTree.json +310 -0
- package/dist/languageServerBase.js +2 -2
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +15 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +4 -1
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/localization/package.nls.pl.json +2 -2
- package/dist/localization/package.nls.pt-br.json +1 -1
- package/dist/localization/package.nls.zh-cn.json +2 -2
- package/dist/localization/package.nls.zh-tw.json +1 -1
- package/dist/tests/config.test.js +48 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js +44 -0
- package/dist/tests/fourslash/findDefinitions.metaclass.fourslash.js.map +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js +42 -0
- package/dist/tests/fourslash/findDefinitions.metaclassDict.fourslash.js.map +1 -0
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +10 -9
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/languageServer.test.js +129 -0
- package/dist/tests/languageServer.test.js.map +1 -1
- package/dist/tests/mypyPrimerMcp.test.js +2 -1
- package/dist/tests/mypyPrimerMcp.test.js.map +1 -1
- package/dist/tests/overloadResult.test.d.ts +1 -0
- package/dist/tests/overloadResult.test.js +182 -0
- package/dist/tests/overloadResult.test.js.map +1 -0
- package/dist/tests/overloadResultController.test.d.ts +1 -0
- package/dist/tests/overloadResultController.test.js +2146 -0
- package/dist/tests/overloadResultController.test.js.map +1 -0
- package/dist/tests/protocolRequirement.test.d.ts +1 -0
- package/dist/tests/protocolRequirement.test.js +122 -0
- package/dist/tests/protocolRequirement.test.js.map +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
- package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
- package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
- package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
- package/dist/tests/protocolRequirementBoundary.test.js +119 -0
- package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
- package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
- package/dist/tests/protocolRequirementComplexity.test.js +159 -0
- package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
- package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
- package/dist/tests/protocolRequirementCycles.test.js +160 -0
- package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
- package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
- package/dist/tests/protocolRequirementGeneral.test.js +120 -0
- package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
- package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
- package/dist/tests/protocolRequirementInstances.test.js +164 -0
- package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
- package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
- package/dist/tests/protocolRequirementListStub.test.js +244 -0
- package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
- package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
- package/dist/tests/protocolRequirementPopulated.test.js +172 -0
- package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
- package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
- package/dist/tests/protocolRequirementRecursive.test.js +118 -0
- package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
- package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
- package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
- package/dist/tests/protocolRequirementState.test.d.ts +1 -0
- package/dist/tests/protocolRequirementState.test.js +161 -0
- package/dist/tests/protocolRequirementState.test.js.map +1 -0
- package/dist/tests/service.test.js +36 -0
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/testState.test.js +64 -0
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.d.ts +6 -1
- package/dist/tests/testUtils.js +11 -6
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
- package/dist/tests/typeCacheIsolation.test.js +109 -0
- package/dist/tests/typeCacheIsolation.test.js.map +1 -0
- package/dist/tests/typeCacheUtils.test.js +59 -0
- package/dist/tests/typeCacheUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +32 -2
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +6 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +25 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +19 -23
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +237 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +28 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/typeServer/inProcTypeServerTestUtils.d.ts +7 -2
- package/dist/tests/typeServer/inProcTypeServerTestUtils.js +14 -7
- package/dist/tests/typeServer/inProcTypeServerTestUtils.js.map +1 -1
- package/dist/tests/typeServer/stubGenerator.test.js +29 -0
- package/dist/tests/typeServer/stubGenerator.test.js.map +1 -1
- package/dist/tests/typeServer/typeServer.inProc.test.js +173 -1
- package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +15 -0
- package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
- package/dist/tests/typeUtils.test.js +36 -0
- package/dist/tests/typeUtils.test.js.map +1 -1
- package/dist/trace/nativeAdapter.js +1 -5
- package/dist/trace/nativeAdapter.js.map +1 -1
- package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
- package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
- package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
- package/dist/typeServer/stubGenerator.js +5 -6
- package/dist/typeServer/stubGenerator.js.map +1 -1
- package/dist/typeServer/typeServerConversionUtils.js +9 -0
- package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
- package/dist/workspaceFactory.js +5 -0
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
{
|
|
2
|
+
"native": [
|
|
3
|
+
"using System;",
|
|
4
|
+
"using System.Collections.Generic;",
|
|
5
|
+
"using System.ComponentModel;",
|
|
6
|
+
"using System.Runtime.InteropServices;",
|
|
7
|
+
"",
|
|
8
|
+
"public sealed class PylanceOwnedWindowsProcess : IDisposable",
|
|
9
|
+
"{",
|
|
10
|
+
" private const uint QueryAccess = 0x1000 | 0x100000;",
|
|
11
|
+
" private const uint ControlAccess = QueryAccess | 0x0001 | 0x0800;",
|
|
12
|
+
" private IntPtr handle;",
|
|
13
|
+
" private bool controlled;",
|
|
14
|
+
" private bool suspended;",
|
|
15
|
+
" public readonly int Id;",
|
|
16
|
+
" public readonly int ParentId;",
|
|
17
|
+
" public readonly long CreationTimeUtcTicks;",
|
|
18
|
+
"",
|
|
19
|
+
" [StructLayout(LayoutKind.Sequential)]",
|
|
20
|
+
" private struct BasicInformation",
|
|
21
|
+
" {",
|
|
22
|
+
" public IntPtr Reserved1, PebAddress, Reserved2, Reserved3;",
|
|
23
|
+
" public UIntPtr ProcessId, ParentProcessId;",
|
|
24
|
+
" }",
|
|
25
|
+
"",
|
|
26
|
+
" [StructLayout(LayoutKind.Sequential)]",
|
|
27
|
+
" private struct UnicodeString",
|
|
28
|
+
" {",
|
|
29
|
+
" public ushort Length, MaximumLength;",
|
|
30
|
+
" public IntPtr Buffer;",
|
|
31
|
+
" }",
|
|
32
|
+
"",
|
|
33
|
+
" // SYSTEM_PROCESS_INFORMATION prefix through InheritedFromUniqueProcessId.",
|
|
34
|
+
" [StructLayout(LayoutKind.Sequential)]",
|
|
35
|
+
" private struct SnapshotEntry",
|
|
36
|
+
" {",
|
|
37
|
+
" public uint NextEntryOffset, NumberOfThreads;",
|
|
38
|
+
" public long WorkingSetPrivateSize;",
|
|
39
|
+
" public uint HardFaultCount, NumberOfThreadsHighWatermark;",
|
|
40
|
+
" public ulong CycleTime;",
|
|
41
|
+
" public long CreateTime, UserTime, KernelTime;",
|
|
42
|
+
" public UnicodeString ImageName;",
|
|
43
|
+
" public int BasePriority;",
|
|
44
|
+
" public IntPtr ProcessId, ParentProcessId;",
|
|
45
|
+
" }",
|
|
46
|
+
"",
|
|
47
|
+
" public sealed class Entry",
|
|
48
|
+
" {",
|
|
49
|
+
" public int Id;",
|
|
50
|
+
" public int ParentId;",
|
|
51
|
+
" public long CreationTimeUtcTicks;",
|
|
52
|
+
" }",
|
|
53
|
+
"",
|
|
54
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
55
|
+
" private static extern IntPtr OpenProcess(uint access, bool inherit, int pid);",
|
|
56
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
57
|
+
" private static extern bool CloseHandle(IntPtr value);",
|
|
58
|
+
" [DllImport(\"kernel32.dll\")]",
|
|
59
|
+
" private static extern IntPtr GetCurrentProcess();",
|
|
60
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
61
|
+
" private static extern bool DuplicateHandle(IntPtr sourceProcess, IntPtr source, IntPtr targetProcess, out IntPtr target, uint access, bool inherit, uint options);",
|
|
62
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
63
|
+
" private static extern uint GetProcessId(IntPtr process);",
|
|
64
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
65
|
+
" private static extern bool GetProcessTimes(IntPtr process, out long created, out long exited, out long kernel, out long user);",
|
|
66
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
67
|
+
" private static extern uint WaitForSingleObject(IntPtr value, uint milliseconds);",
|
|
68
|
+
" [DllImport(\"kernel32.dll\", SetLastError = true)]",
|
|
69
|
+
" private static extern bool TerminateProcess(IntPtr process, uint code);",
|
|
70
|
+
" [DllImport(\"ntdll.dll\")]",
|
|
71
|
+
" private static extern int NtQuerySystemInformation(int kind, IntPtr information, int size, out int returned);",
|
|
72
|
+
" [DllImport(\"ntdll.dll\")]",
|
|
73
|
+
" private static extern int NtQueryInformationProcess(IntPtr process, int kind, out BasicInformation information, int size, out int returned);",
|
|
74
|
+
" [DllImport(\"ntdll.dll\")]",
|
|
75
|
+
" private static extern int NtSuspendProcess(IntPtr process);",
|
|
76
|
+
" [DllImport(\"ntdll.dll\")]",
|
|
77
|
+
" private static extern int NtResumeProcess(IntPtr process);",
|
|
78
|
+
"",
|
|
79
|
+
" private PylanceOwnedWindowsProcess(IntPtr value)",
|
|
80
|
+
" {",
|
|
81
|
+
" handle = value;",
|
|
82
|
+
" try",
|
|
83
|
+
" {",
|
|
84
|
+
" Id = checked((int)GetProcessId(handle));",
|
|
85
|
+
" if (Id == 0) throw new Win32Exception();",
|
|
86
|
+
" BasicInformation information;",
|
|
87
|
+
" int returned;",
|
|
88
|
+
" CheckStatus(NtQueryInformationProcess(handle, 0, out information, Marshal.SizeOf(typeof(BasicInformation)), out returned), \"query parent identity\");",
|
|
89
|
+
" if (information.ProcessId.ToUInt64() != (ulong)Id) throw new InvalidOperationException(\"Native process identity changed.\");",
|
|
90
|
+
" ParentId = checked((int)information.ParentProcessId.ToUInt64());",
|
|
91
|
+
" CreationTimeUtcTicks = ReadTime(handle, false);",
|
|
92
|
+
" }",
|
|
93
|
+
" catch { Dispose(); throw; }",
|
|
94
|
+
" }",
|
|
95
|
+
"",
|
|
96
|
+
" public static PylanceOwnedWindowsProcess Open(int pid)",
|
|
97
|
+
" {",
|
|
98
|
+
" IntPtr value = OpenProcess(QueryAccess, false, pid);",
|
|
99
|
+
" if (value == IntPtr.Zero)",
|
|
100
|
+
" {",
|
|
101
|
+
" int error = Marshal.GetLastWin32Error();",
|
|
102
|
+
" throw new Win32Exception(error, \"Cannot pin candidate process \" + pid + \" (Win32 error \" + error + \": \" + new Win32Exception(error).Message + \")\");",
|
|
103
|
+
" }",
|
|
104
|
+
" return new PylanceOwnedWindowsProcess(value);",
|
|
105
|
+
" }",
|
|
106
|
+
"",
|
|
107
|
+
" public static PylanceOwnedWindowsProcess FromHandle(IntPtr ownedHandle)",
|
|
108
|
+
" {",
|
|
109
|
+
" IntPtr copy;",
|
|
110
|
+
" if (!DuplicateHandle(GetCurrentProcess(), ownedHandle, GetCurrentProcess(), out copy, 0, false, 2)) throw new Win32Exception();",
|
|
111
|
+
" return new PylanceOwnedWindowsProcess(copy);",
|
|
112
|
+
" }",
|
|
113
|
+
"",
|
|
114
|
+
" public PylanceOwnedWindowsProcess Retain() { return FromHandle(handle); }",
|
|
115
|
+
" public long ExitTimeUtcTicks { get { return ReadTime(handle, true); } }",
|
|
116
|
+
" public bool HasExited { get { return WaitForExit(0); } }",
|
|
117
|
+
"",
|
|
118
|
+
" private static long ReadTime(IntPtr process, bool exit)",
|
|
119
|
+
" {",
|
|
120
|
+
" long created, exited, kernel, user;",
|
|
121
|
+
" if (!GetProcessTimes(process, out created, out exited, out kernel, out user)) throw new Win32Exception();",
|
|
122
|
+
" long value = exit ? exited : created;",
|
|
123
|
+
" return value == 0 ? 0 : DateTime.FromFileTimeUtc(value).Ticks;",
|
|
124
|
+
" }",
|
|
125
|
+
"",
|
|
126
|
+
" private void AcquireControl()",
|
|
127
|
+
" {",
|
|
128
|
+
" if (controlled) return;",
|
|
129
|
+
" // The query handle remains open during this access upgrade; never reopen a freed PID.",
|
|
130
|
+
" IntPtr value = OpenProcess(ControlAccess, false, Id);",
|
|
131
|
+
" if (value == IntPtr.Zero) throw new Win32Exception(Marshal.GetLastWin32Error(), \"Cannot control owned process \" + Id);",
|
|
132
|
+
" try",
|
|
133
|
+
" {",
|
|
134
|
+
" if (GetProcessId(value) != (uint)Id || ReadTime(value, false) != CreationTimeUtcTicks)",
|
|
135
|
+
" throw new InvalidOperationException(\"Owned process identity changed during access upgrade.\");",
|
|
136
|
+
" CloseHandle(handle);",
|
|
137
|
+
" handle = value;",
|
|
138
|
+
" value = IntPtr.Zero;",
|
|
139
|
+
" controlled = true;",
|
|
140
|
+
" }",
|
|
141
|
+
" finally { if (value != IntPtr.Zero) CloseHandle(value); }",
|
|
142
|
+
" }",
|
|
143
|
+
"",
|
|
144
|
+
" public void Suspend()",
|
|
145
|
+
" {",
|
|
146
|
+
" if (HasExited) return;",
|
|
147
|
+
" AcquireControl();",
|
|
148
|
+
" CheckStatus(NtSuspendProcess(handle), \"suspend owned process \" + Id);",
|
|
149
|
+
" suspended = true;",
|
|
150
|
+
" }",
|
|
151
|
+
"",
|
|
152
|
+
" public void Resume()",
|
|
153
|
+
" {",
|
|
154
|
+
" if (!suspended) return;",
|
|
155
|
+
" if (!HasExited) CheckStatus(NtResumeProcess(handle), \"resume owned process \" + Id);",
|
|
156
|
+
" suspended = false;",
|
|
157
|
+
" }",
|
|
158
|
+
"",
|
|
159
|
+
" public void Terminate()",
|
|
160
|
+
" {",
|
|
161
|
+
" if (HasExited) return;",
|
|
162
|
+
" AcquireControl();",
|
|
163
|
+
" if (!TerminateProcess(handle, 1)) throw new Win32Exception(Marshal.GetLastWin32Error(), \"Cannot terminate owned process \" + Id);",
|
|
164
|
+
" }",
|
|
165
|
+
"",
|
|
166
|
+
" public bool WaitForExit(int milliseconds)",
|
|
167
|
+
" {",
|
|
168
|
+
" uint result = WaitForSingleObject(handle, checked((uint)milliseconds));",
|
|
169
|
+
" if (result == 0) return true;",
|
|
170
|
+
" if (result == 258) return false;",
|
|
171
|
+
" throw new Win32Exception(Marshal.GetLastWin32Error(), \"Cannot observe owned process exit.\");",
|
|
172
|
+
" }",
|
|
173
|
+
"",
|
|
174
|
+
" public static Entry[] Snapshot()",
|
|
175
|
+
" {",
|
|
176
|
+
" // Birth times must be available even for protected processes we cannot open.",
|
|
177
|
+
" int capacity = 65536;",
|
|
178
|
+
" for (int attempt = 0; attempt < 8; attempt++)",
|
|
179
|
+
" {",
|
|
180
|
+
" if (capacity > 64 * 1024 * 1024) throw new InvalidOperationException(\"Process snapshot exceeds its memory budget.\");",
|
|
181
|
+
" IntPtr buffer = Marshal.AllocHGlobal(capacity);",
|
|
182
|
+
" try",
|
|
183
|
+
" {",
|
|
184
|
+
" int returned;",
|
|
185
|
+
" int status = NtQuerySystemInformation(5, buffer, capacity, out returned);",
|
|
186
|
+
" if (status == unchecked((int)0xC0000004))",
|
|
187
|
+
" {",
|
|
188
|
+
" capacity = Math.Max(capacity * 2, returned);",
|
|
189
|
+
" continue;",
|
|
190
|
+
" }",
|
|
191
|
+
" CheckStatus(status, \"snapshot process identities\");",
|
|
192
|
+
" if (returned <= 0 || returned > capacity) throw new InvalidOperationException(\"Invalid process snapshot length.\");",
|
|
193
|
+
" return ReadSnapshot(buffer, returned);",
|
|
194
|
+
" }",
|
|
195
|
+
" finally { Marshal.FreeHGlobal(buffer); }",
|
|
196
|
+
" }",
|
|
197
|
+
" throw new InvalidOperationException(\"Process snapshot exceeded its retry budget.\");",
|
|
198
|
+
" }",
|
|
199
|
+
"",
|
|
200
|
+
" private static Entry[] ReadSnapshot(IntPtr buffer, int length)",
|
|
201
|
+
" {",
|
|
202
|
+
" List<Entry> entries = new List<Entry>();",
|
|
203
|
+
" int entrySize = Marshal.SizeOf(typeof(SnapshotEntry));",
|
|
204
|
+
" int offset = 0;",
|
|
205
|
+
" for (;;)",
|
|
206
|
+
" {",
|
|
207
|
+
" if (length - offset < entrySize) throw new InvalidOperationException(\"Truncated process snapshot entry.\");",
|
|
208
|
+
" SnapshotEntry entry = (SnapshotEntry)Marshal.PtrToStructure(IntPtr.Add(buffer, offset), typeof(SnapshotEntry));",
|
|
209
|
+
" entries.Add(new Entry {",
|
|
210
|
+
" Id = checked((int)entry.ProcessId.ToInt64()),",
|
|
211
|
+
" ParentId = checked((int)entry.ParentProcessId.ToInt64()),",
|
|
212
|
+
" CreationTimeUtcTicks = entry.CreateTime > 0 ? DateTime.FromFileTimeUtc(entry.CreateTime).Ticks : 0",
|
|
213
|
+
" });",
|
|
214
|
+
" if (entry.NextEntryOffset == 0) return entries.ToArray();",
|
|
215
|
+
" if (entry.NextEntryOffset < entrySize || entry.NextEntryOffset > length - offset - entrySize)",
|
|
216
|
+
" throw new InvalidOperationException(\"Invalid process snapshot entry offset.\");",
|
|
217
|
+
" offset += (int)entry.NextEntryOffset;",
|
|
218
|
+
" }",
|
|
219
|
+
" }",
|
|
220
|
+
"",
|
|
221
|
+
" private static void CheckStatus(int status, string operation)",
|
|
222
|
+
" {",
|
|
223
|
+
" if (status < 0) throw new InvalidOperationException(\"Cannot \" + operation + \" (NTSTATUS 0x\" + status.ToString(\"X8\") + \").\");",
|
|
224
|
+
" }",
|
|
225
|
+
"",
|
|
226
|
+
" public void Dispose()",
|
|
227
|
+
" {",
|
|
228
|
+
" if (handle != IntPtr.Zero) { CloseHandle(handle); handle = IntPtr.Zero; }",
|
|
229
|
+
" }",
|
|
230
|
+
"}"
|
|
231
|
+
],
|
|
232
|
+
"functions": [
|
|
233
|
+
"function Stop-OwnedWindowsProcessTree {",
|
|
234
|
+
" param(",
|
|
235
|
+
" [Parameter(Mandatory = $true)] $Root,",
|
|
236
|
+
" [ValidateRange(1, 60000)] [int] $TimeoutMilliseconds = 5000,",
|
|
237
|
+
" [scriptblock] $Snapshot = { [PylanceOwnedWindowsProcess]::Snapshot() },",
|
|
238
|
+
" [scriptblock] $OpenProcess = { param([int] $ProcessId) [PylanceOwnedWindowsProcess]::Open($ProcessId) }",
|
|
239
|
+
" )",
|
|
240
|
+
" $watch = [System.Diagnostics.Stopwatch]::StartNew()",
|
|
241
|
+
" $held = [System.Collections.Generic.List[object]]::new()",
|
|
242
|
+
" $known = @{}",
|
|
243
|
+
" $failure = $null",
|
|
244
|
+
" $cleanupErrors = [System.Collections.Generic.List[string]]::new()",
|
|
245
|
+
" try {",
|
|
246
|
+
" if ($Root.Id -eq $PID) { throw 'Refusing to terminate the cleanup process.' }",
|
|
247
|
+
" $retainedRoot = $Root.Retain()",
|
|
248
|
+
" $rootEntry = [PSCustomObject]@{ Process = $retainedRoot; Depth = 0 }",
|
|
249
|
+
" $held.Add($rootEntry)",
|
|
250
|
+
" $known[[int]$retainedRoot.Id] = $rootEntry",
|
|
251
|
+
" $retainedRoot.Suspend()",
|
|
252
|
+
" for ($round = 0; ; $round++) {",
|
|
253
|
+
" if ($round -ge 64 -or $held.Count -gt 4096 -or $watch.ElapsedMilliseconds -ge $TimeoutMilliseconds) {",
|
|
254
|
+
" throw 'Owned process-tree discovery exceeded its bounded budget; cleanup is incomplete.'",
|
|
255
|
+
" }",
|
|
256
|
+
" $found = $false",
|
|
257
|
+
" foreach ($hint in (& $Snapshot)) {",
|
|
258
|
+
" if ($known.ContainsKey([int]$hint.Id) -or !$known.ContainsKey([int]$hint.ParentId)) { continue }",
|
|
259
|
+
" if ($watch.ElapsedMilliseconds -ge $TimeoutMilliseconds) { throw 'Owned process-tree discovery timed out; cleanup is incomplete.' }",
|
|
260
|
+
" $parent = $known[[int]$hint.ParentId]",
|
|
261
|
+
" # Exclude historical PID reuse before opening potentially inaccessible processes.",
|
|
262
|
+
" if ($hint.CreationTimeUtcTicks -gt 0 -and $hint.CreationTimeUtcTicks -lt $parent.Process.CreationTimeUtcTicks) { continue }",
|
|
263
|
+
" $candidate = & $OpenProcess ([int]$hint.Id)",
|
|
264
|
+
" if ($null -eq $candidate) { throw \"Cannot pin candidate process $($hint.Id); cleanup is incomplete.\" }",
|
|
265
|
+
" try {",
|
|
266
|
+
" if ($candidate.Id -ne $hint.Id) { throw 'Pinned candidate identity does not match the snapshot.' }",
|
|
267
|
+
" # A snapshot is only a hint; parent and birth must come from the pinned handle.",
|
|
268
|
+
" if ($candidate.ParentId -ne $parent.Process.Id) { continue }",
|
|
269
|
+
" if ($candidate.CreationTimeUtcTicks -lt $parent.Process.CreationTimeUtcTicks) { continue }",
|
|
270
|
+
" if ($candidate.CreationTimeUtcTicks -eq $parent.Process.CreationTimeUtcTicks) {",
|
|
271
|
+
" throw \"Ambiguous parent/child birth ordering for $($candidate.Id); cleanup is incomplete.\"",
|
|
272
|
+
" }",
|
|
273
|
+
" $parentExit = $parent.Process.ExitTimeUtcTicks",
|
|
274
|
+
" if ($parentExit -ne 0 -and $candidate.CreationTimeUtcTicks -gt $parentExit) { continue }",
|
|
275
|
+
" if ($candidate.Id -eq $PID) { throw 'Refusing to include the cleanup process in the owned tree.' }",
|
|
276
|
+
" # Freeze each accepted parent before its next child snapshot, not an entire discovered tree.",
|
|
277
|
+
" $entry = [PSCustomObject]@{ Process = $candidate; Depth = $parent.Depth + 1 }",
|
|
278
|
+
" $held.Add($entry)",
|
|
279
|
+
" $known[[int]$candidate.Id] = $entry",
|
|
280
|
+
" $candidate = $null",
|
|
281
|
+
" $entry.Process.Suspend()",
|
|
282
|
+
" $found = $true",
|
|
283
|
+
" } finally {",
|
|
284
|
+
" if ($null -ne $candidate) { $candidate.Dispose() }",
|
|
285
|
+
" }",
|
|
286
|
+
" }",
|
|
287
|
+
" if (!$found) { break }",
|
|
288
|
+
" }",
|
|
289
|
+
" # Leave ancestors alive on failure so their owner can retain the root and retry cleanup.",
|
|
290
|
+
" foreach ($entry in ($held | Sort-Object -Property Depth -Descending)) {",
|
|
291
|
+
" $remaining = $TimeoutMilliseconds - [int]$watch.ElapsedMilliseconds",
|
|
292
|
+
" if ($remaining -le 0) { throw 'Owned process-tree termination timed out; cleanup is incomplete.' }",
|
|
293
|
+
" $entry.Process.Terminate()",
|
|
294
|
+
" if (!$entry.Process.WaitForExit($remaining)) { throw \"Owned process $($entry.Process.Id) has not exited; cleanup is incomplete.\" }",
|
|
295
|
+
" }",
|
|
296
|
+
" } catch {",
|
|
297
|
+
" $failure = $_",
|
|
298
|
+
" } finally {",
|
|
299
|
+
" for ($index = $held.Count - 1; $index -ge 0; $index--) {",
|
|
300
|
+
" $owned = $held[$index].Process",
|
|
301
|
+
" try { $owned.Resume() } catch { $cleanupErrors.Add([string]$_) }",
|
|
302
|
+
" try { $owned.Dispose() } catch { $cleanupErrors.Add([string]$_) }",
|
|
303
|
+
" }",
|
|
304
|
+
" $watch.Stop()",
|
|
305
|
+
" }",
|
|
306
|
+
" if ($cleanupErrors.Count -gt 0) { throw \"Owned process cleanup is incomplete: $failure; $($cleanupErrors -join '; ')\" }",
|
|
307
|
+
" if ($null -ne $failure) { throw $failure }",
|
|
308
|
+
"}"
|
|
309
|
+
]
|
|
310
|
+
}
|
|
@@ -649,7 +649,7 @@ class LanguageServerBase {
|
|
|
649
649
|
return null;
|
|
650
650
|
}
|
|
651
651
|
return workspace.service.run((program) => {
|
|
652
|
-
return new callHierarchyProvider_1.CallHierarchyProvider(program, uri, params.item.
|
|
652
|
+
return new callHierarchyProvider_1.CallHierarchyProvider(program, uri, params.item.selectionRange.start, token).getIncomingCalls();
|
|
653
653
|
}, token);
|
|
654
654
|
}
|
|
655
655
|
async onCallHierarchyOutgoingCalls(params, token) {
|
|
@@ -659,7 +659,7 @@ class LanguageServerBase {
|
|
|
659
659
|
return null;
|
|
660
660
|
}
|
|
661
661
|
return workspace.service.run((program) => {
|
|
662
|
-
return new callHierarchyProvider_1.CallHierarchyProvider(program, uri, params.item.
|
|
662
|
+
return new callHierarchyProvider_1.CallHierarchyProvider(program, uri, params.item.selectionRange.start, token).getOutgoingCalls();
|
|
663
663
|
}, token);
|
|
664
664
|
}
|
|
665
665
|
async onDidOpenTextDocument(params, ipythonMode = sourceFile_1.IPythonMode.None) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageServerBase.js","sourceRoot":"","sources":["../../../../src/languageServerBase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"languageServerBase.js","sourceRoot":"","sources":["../../../../src/languageServerBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,7 +210,11 @@ class CallHierarchyProvider {
|
|
|
210
210
|
if (!parseRoot) {
|
|
211
211
|
return null;
|
|
212
212
|
}
|
|
213
|
-
const
|
|
213
|
+
const resolvedParseResults = this._program.getParseResults(resolvedDecl.uri);
|
|
214
|
+
if (!resolvedParseResults) {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
const callFinder = new FindOutgoingCallTreeWalker(this._program, parseRoot, resolvedParseResults, this._evaluator, this._token);
|
|
214
218
|
const outgoingCalls = callFinder.findCalls();
|
|
215
219
|
if (outgoingCalls.length === 0) {
|
|
216
220
|
return null;
|
|
@@ -447,10 +451,14 @@ class FindIncomingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
447
451
|
const declarations = this._getDeclarations(nameNode);
|
|
448
452
|
if (declarations) {
|
|
449
453
|
if (this._targetDeclaration.type === 8 /* DeclarationType.Alias */) {
|
|
450
|
-
const
|
|
454
|
+
const resolvedTargetDecl = this._evaluator.resolveAliasDeclaration(this._targetDeclaration,
|
|
451
455
|
/* resolveLocalNames */ true);
|
|
452
|
-
if (
|
|
453
|
-
declarations.some((decl) =>
|
|
456
|
+
if (resolvedTargetDecl &&
|
|
457
|
+
declarations.some((decl) => {
|
|
458
|
+
const resolvedDecl = this._evaluator.resolveAliasDeclaration(decl,
|
|
459
|
+
/* resolveLocalNames */ true);
|
|
460
|
+
return (resolvedDecl && DeclarationUtils.areDeclarationsSame(resolvedDecl, resolvedTargetDecl));
|
|
461
|
+
})) {
|
|
454
462
|
this._addIncomingCallForDeclaration(nameNode);
|
|
455
463
|
}
|
|
456
464
|
}
|
|
@@ -535,7 +543,8 @@ class FindIncomingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
535
543
|
};
|
|
536
544
|
}
|
|
537
545
|
else {
|
|
538
|
-
const functionRange = (0, positionUtils_1.convertOffsetsToRange)(executionNode.
|
|
546
|
+
const functionRange = (0, positionUtils_1.convertOffsetsToRange)(executionNode.start, executionNode.start + executionNode.length, this._parseResults.tokenizerOutput.lines);
|
|
547
|
+
const functionSelectionRange = (0, positionUtils_1.convertOffsetsToRange)(executionNode.d.name.start, executionNode.d.name.start + executionNode.d.name.length, this._parseResults.tokenizerOutput.lines);
|
|
539
548
|
const classNode = ParseTreeUtils.getEnclosingClass(executionNode, /* stopAtFunction */ true);
|
|
540
549
|
callSource = {
|
|
541
550
|
name: executionNode.d.name.d.value,
|
|
@@ -543,7 +552,7 @@ class FindIncomingCallTreeWalker extends parseTreeWalker_1.ParseTreeWalker {
|
|
|
543
552
|
detail: classNode ? `class ${classNode.d.name.d.value} (${fileName})` : `(${fileName})`,
|
|
544
553
|
uri: (0, uriUtils_1.convertUriToLspUriString)(this._program.fileSystem, this._fileUri),
|
|
545
554
|
range: functionRange,
|
|
546
|
-
selectionRange:
|
|
555
|
+
selectionRange: functionSelectionRange,
|
|
547
556
|
};
|
|
548
557
|
}
|
|
549
558
|
// Is there already a call recorded for this caller? If so,
|