@zzzen/pyright-internal 1.2.0-dev.2022-07-02 → 1.2.0-dev.20220717

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.
Files changed (166) hide show
  1. package/README.md +82 -1
  2. package/dist/analyzer/aliasDeclarationUtils.js +2 -2
  3. package/dist/analyzer/analyzerFileInfo.d.ts +2 -1
  4. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  5. package/dist/analyzer/analyzerNodeInfo.d.ts +4 -1
  6. package/dist/analyzer/analyzerNodeInfo.js +12 -1
  7. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  8. package/dist/analyzer/binder.d.ts +6 -1
  9. package/dist/analyzer/binder.js +148 -31
  10. package/dist/analyzer/binder.js.map +1 -1
  11. package/dist/analyzer/checker.d.ts +4 -1
  12. package/dist/analyzer/checker.js +176 -90
  13. package/dist/analyzer/checker.js.map +1 -1
  14. package/dist/analyzer/codeFlowEngine.d.ts +0 -1
  15. package/dist/analyzer/codeFlowEngine.js +196 -197
  16. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  17. package/dist/analyzer/codeFlowTypes.d.ts +1 -1
  18. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  19. package/dist/analyzer/constraintSolver.js +9 -6
  20. package/dist/analyzer/constraintSolver.js.map +1 -1
  21. package/dist/analyzer/declaration.d.ts +18 -6
  22. package/dist/analyzer/declaration.js +19 -9
  23. package/dist/analyzer/declaration.js.map +1 -1
  24. package/dist/analyzer/declarationUtils.d.ts +1 -1
  25. package/dist/analyzer/declarationUtils.js +19 -16
  26. package/dist/analyzer/declarationUtils.js.map +1 -1
  27. package/dist/analyzer/functionTransform.js +2 -1
  28. package/dist/analyzer/functionTransform.js.map +1 -1
  29. package/dist/analyzer/importResolver.js +3 -2
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/packageTypeVerifier.js +6 -6
  32. package/dist/analyzer/parseTreeUtils.d.ts +6 -3
  33. package/dist/analyzer/parseTreeUtils.js +65 -21
  34. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  35. package/dist/analyzer/parseTreeWalker.d.ts +4 -1
  36. package/dist/analyzer/parseTreeWalker.js +19 -1
  37. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  38. package/dist/analyzer/patternMatching.js +1 -1
  39. package/dist/analyzer/patternMatching.js.map +1 -1
  40. package/dist/analyzer/program.d.ts +2 -2
  41. package/dist/analyzer/program.js +1 -1
  42. package/dist/analyzer/program.js.map +1 -1
  43. package/dist/analyzer/properties.js +2 -0
  44. package/dist/analyzer/properties.js.map +1 -1
  45. package/dist/analyzer/protocols.d.ts +0 -1
  46. package/dist/analyzer/protocols.js +1 -63
  47. package/dist/analyzer/protocols.js.map +1 -1
  48. package/dist/analyzer/service.d.ts +3 -2
  49. package/dist/analyzer/service.js +4 -2
  50. package/dist/analyzer/service.js.map +1 -1
  51. package/dist/analyzer/sourceFile.d.ts +6 -1
  52. package/dist/analyzer/sourceFile.js +57 -14
  53. package/dist/analyzer/sourceFile.js.map +1 -1
  54. package/dist/analyzer/tracePrinter.js +8 -4
  55. package/dist/analyzer/tracePrinter.js.map +1 -1
  56. package/dist/analyzer/typeDocStringUtils.js +1 -1
  57. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  58. package/dist/analyzer/typeEvaluator.js +839 -375
  59. package/dist/analyzer/typeEvaluator.js.map +1 -1
  60. package/dist/analyzer/typeEvaluatorTypes.d.ts +9 -7
  61. package/dist/analyzer/typeEvaluatorWithTracker.js +10 -7
  62. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  63. package/dist/analyzer/typeGuards.js +6 -1
  64. package/dist/analyzer/typeGuards.js.map +1 -1
  65. package/dist/analyzer/typePrinter.js +4 -1
  66. package/dist/analyzer/typePrinter.js.map +1 -1
  67. package/dist/analyzer/typeStubWriter.d.ts +4 -1
  68. package/dist/analyzer/typeStubWriter.js +36 -0
  69. package/dist/analyzer/typeStubWriter.js.map +1 -1
  70. package/dist/analyzer/typeUtils.d.ts +3 -2
  71. package/dist/analyzer/typeUtils.js +94 -13
  72. package/dist/analyzer/typeUtils.js.map +1 -1
  73. package/dist/analyzer/typedDicts.d.ts +1 -0
  74. package/dist/analyzer/typedDicts.js +25 -2
  75. package/dist/analyzer/typedDicts.js.map +1 -1
  76. package/dist/analyzer/types.d.ts +21 -5
  77. package/dist/analyzer/types.js +87 -11
  78. package/dist/analyzer/types.js.map +1 -1
  79. package/dist/common/diagnostic.d.ts +2 -1
  80. package/dist/common/diagnostic.js +2 -1
  81. package/dist/common/diagnostic.js.map +1 -1
  82. package/dist/common/diagnosticSink.d.ts +3 -0
  83. package/dist/common/diagnosticSink.js +15 -2
  84. package/dist/common/diagnosticSink.js.map +1 -1
  85. package/dist/languageServerBase.d.ts +5 -8
  86. package/dist/languageServerBase.js +30 -18
  87. package/dist/languageServerBase.js.map +1 -1
  88. package/dist/languageService/autoImporter.js +1 -1
  89. package/dist/languageService/callHierarchyProvider.js +9 -9
  90. package/dist/languageService/completionProvider.d.ts +15 -11
  91. package/dist/languageService/completionProvider.js +95 -18
  92. package/dist/languageService/completionProvider.js.map +1 -1
  93. package/dist/languageService/definitionProvider.js +3 -3
  94. package/dist/languageService/documentSymbolCollector.js +1 -1
  95. package/dist/languageService/documentSymbolProvider.js +10 -7
  96. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  97. package/dist/languageService/hoverProvider.js +19 -5
  98. package/dist/languageService/hoverProvider.js.map +1 -1
  99. package/dist/languageService/indentationUtils.js +3 -2
  100. package/dist/languageService/indentationUtils.js.map +1 -1
  101. package/dist/languageService/insertionPointUtils.d.ts +9 -0
  102. package/dist/languageService/insertionPointUtils.js +110 -0
  103. package/dist/languageService/insertionPointUtils.js.map +1 -0
  104. package/dist/languageService/referencesProvider.js +8 -5
  105. package/dist/languageService/referencesProvider.js.map +1 -1
  106. package/dist/languageService/signatureHelpProvider.js +4 -2
  107. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  108. package/dist/languageService/tooltipUtils.js +2 -4
  109. package/dist/languageService/tooltipUtils.js.map +1 -1
  110. package/dist/localization/localize.d.ts +32 -0
  111. package/dist/localization/localize.js +18 -0
  112. package/dist/localization/localize.js.map +1 -1
  113. package/dist/localization/package.nls.en-us.json +20 -2
  114. package/dist/parser/parseNodes.d.ts +41 -5
  115. package/dist/parser/parseNodes.js +83 -4
  116. package/dist/parser/parseNodes.js.map +1 -1
  117. package/dist/parser/parser.d.ts +5 -1
  118. package/dist/parser/parser.js +140 -14
  119. package/dist/parser/parser.js.map +1 -1
  120. package/dist/parser/tokenizer.d.ts +2 -1
  121. package/dist/parser/tokenizer.js +7 -5
  122. package/dist/parser/tokenizer.js.map +1 -1
  123. package/dist/parser/tokenizerTypes.d.ts +5 -3
  124. package/dist/parser/tokenizerTypes.js +6 -4
  125. package/dist/parser/tokenizerTypes.js.map +1 -1
  126. package/dist/pyright.js +3 -1
  127. package/dist/pyright.js.map +1 -1
  128. package/dist/pyrightFileSystem.d.ts +1 -1
  129. package/dist/pyrightFileSystem.js +11 -1
  130. package/dist/pyrightFileSystem.js.map +1 -1
  131. package/dist/tests/chainedSourceFiles.test.js +4 -1
  132. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  133. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +1 -0
  134. package/dist/tests/fourslash/completions.commitChars.fourslash.js +47 -0
  135. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +1 -0
  136. package/dist/tests/fourslash/completions.triggers.fourslash.d.ts +1 -0
  137. package/dist/tests/fourslash/completions.triggers.fourslash.js +29 -0
  138. package/dist/tests/fourslash/completions.triggers.fourslash.js.map +1 -0
  139. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  140. package/dist/tests/fourslash/import.multipart.fourslash.d.ts +1 -0
  141. package/dist/tests/fourslash/import.multipart.fourslash.js +18 -0
  142. package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -0
  143. package/dist/tests/fourslash/signature.simple.fourslash.js +16 -0
  144. package/dist/tests/fourslash/signature.simple.fourslash.js.map +1 -1
  145. package/dist/tests/harness/fourslash/testState.js +11 -2
  146. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  147. package/dist/tests/insertionPointUtils.test.d.ts +1 -0
  148. package/dist/tests/insertionPointUtils.test.js +74 -0
  149. package/dist/tests/insertionPointUtils.test.js.map +1 -0
  150. package/dist/tests/pyrightFileSystem.test.js +28 -0
  151. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  152. package/dist/tests/testUtils.d.ts +2 -1
  153. package/dist/tests/testUtils.js +10 -6
  154. package/dist/tests/testUtils.js.map +1 -1
  155. package/dist/tests/typeEvaluator1.test.js +2 -2
  156. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  157. package/dist/tests/typeEvaluator2.test.js +12 -4
  158. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  159. package/dist/tests/typeEvaluator3.test.js +9 -1
  160. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  161. package/dist/tests/typeEvaluator4.test.js +18 -0
  162. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  163. package/dist/tests/typeEvaluator5.test.d.ts +1 -0
  164. package/dist/tests/typeEvaluator5.test.js +118 -0
  165. package/dist/tests/typeEvaluator5.test.js.map +1 -0
  166. package/package.json +3 -2
package/README.md CHANGED
@@ -1 +1,82 @@
1
- # pyright-packager
1
+ # @zzzen/pyright-internal
2
+
3
+ Repackaged [pyright-internal](https://github.com/microsoft/pyright/tree/main/packages/pyright-internal) with type declaration enabled.
4
+
5
+ # Installation
6
+
7
+ ```sh
8
+ npm i @zzzen/pyright-internal
9
+ ```
10
+
11
+ # Demo
12
+
13
+ print ast of code
14
+
15
+ ```ts
16
+ import { ImportResolver } from "@zzzen/pyright-internal/dist/analyzer/importResolver";
17
+ import { printParseNodeType } from "@zzzen/pyright-internal/dist/analyzer/parseTreeUtils";
18
+ import { ParseTreeWalker } from "@zzzen/pyright-internal/dist/analyzer/parseTreeWalker";
19
+ import { Program } from "@zzzen/pyright-internal/dist/analyzer/program";
20
+ import { ConfigOptions } from "@zzzen/pyright-internal/dist/common/configOptions";
21
+ import {
22
+ lib,
23
+ sitePackages,
24
+ } from "@zzzen/pyright-internal/dist/common/pathConsts";
25
+ import {
26
+ combinePaths,
27
+ normalizeSlashes,
28
+ } from "@zzzen/pyright-internal/dist/common/pathUtils";
29
+ import { ParseNode } from "@zzzen/pyright-internal/dist/parser/parseNodes";
30
+ import { PyrightFileSystem } from "@zzzen/pyright-internal/dist/pyrightFileSystem";
31
+ import { TestAccessHost } from "@zzzen/pyright-internal/dist/tests/harness/testAccessHost";
32
+ import { TestFileSystem } from "@zzzen/pyright-internal/dist/tests/harness/vfs/filesystem";
33
+
34
+ const FILE_PATH = "/t.py";
35
+
36
+ const defaultCode = `
37
+ def f(a = 1):
38
+ return a
39
+ f(1)
40
+ `;
41
+
42
+ // console.log(process.execArgv.join())
43
+ const libraryRoot = combinePaths(normalizeSlashes("/"), lib, sitePackages);
44
+
45
+ const tfs = new TestFileSystem(false, {
46
+ files: {
47
+ [FILE_PATH]: defaultCode,
48
+ },
49
+ });
50
+
51
+ const fs = new PyrightFileSystem(tfs);
52
+
53
+ const configOptions = new ConfigOptions(normalizeSlashes("/"));
54
+ configOptions.typeshedPath = normalizeSlashes(
55
+ "/node_modules/pyright/dist/typeshed-fallback"
56
+ );
57
+ const importResolver = new ImportResolver(
58
+ fs,
59
+ configOptions,
60
+ new TestAccessHost(fs.getModulePath(), [libraryRoot])
61
+ );
62
+ const program = new Program(importResolver, configOptions);
63
+ program.setTrackedFiles([FILE_PATH]);
64
+
65
+ while (program.analyze()) {
66
+ // Continue to call analyze until it completes. Since we're not
67
+ // specifying a timeout, it should complete the first time.
68
+ }
69
+
70
+ const sourceFile = program.getSourceFile(FILE_PATH)!;
71
+
72
+ class PrintWalker extends ParseTreeWalker {
73
+ override visitNode(node: ParseNode) {
74
+ console.log(printParseNodeType(node.nodeType));
75
+ return super.visitNode(node);
76
+ }
77
+ }
78
+
79
+ new PrintWalker().walk(sourceFile.getParseResults()!.parseTree);
80
+ ```
81
+
82
+ For more details, checkout [pyright-ast-viewer](https://github.com/Zzzen/pyright-ast-viewer).
@@ -22,7 +22,7 @@ function resolveAliasDeclaration(importLookup, declaration, resolveLocalNames, a
22
22
  let privatePyTypedImported;
23
23
  let privatePyTypedImporter;
24
24
  while (true) {
25
- if (curDeclaration.type !== 6 /* Alias */ || !curDeclaration.symbolName) {
25
+ if (curDeclaration.type !== 8 /* Alias */ || !curDeclaration.symbolName) {
26
26
  return {
27
27
  declaration: curDeclaration,
28
28
  isPrivate,
@@ -110,7 +110,7 @@ function resolveAliasDeclaration(importLookup, declaration, resolveLocalNames, a
110
110
  // the module is foo, and the foo.__init__.py file contains the statement
111
111
  // "from foo import bar", we want to import the foo/bar.py submodule.
112
112
  if (curDeclaration.path === declaration.path &&
113
- curDeclaration.type === 6 /* Alias */ &&
113
+ curDeclaration.type === 8 /* Alias */ &&
114
114
  curDeclaration.submoduleFallback) {
115
115
  return resolveAliasDeclaration(importLookup, curDeclaration.submoduleFallback, resolveLocalNames, allowExternallyHiddenAccess);
116
116
  }
@@ -3,6 +3,7 @@ import { TextRangeDiagnosticSink } from '../common/diagnosticSink';
3
3
  import { TextRange } from '../common/textRange';
4
4
  import { TextRangeCollection } from '../common/textRangeCollection';
5
5
  import { Scope } from './scope';
6
+ import { IPythonMode } from './sourceFile';
6
7
  import { SymbolTable } from './symbol';
7
8
  export interface AbsoluteModuleDescriptor {
8
9
  importingFilePath: string;
@@ -33,7 +34,7 @@ export interface AnalyzerFileInfo {
33
34
  isTypingExtensionsStubFile: boolean;
34
35
  isBuiltInStubFile: boolean;
35
36
  isInPyTypedPackage: boolean;
36
- isIPythonMode: boolean;
37
+ ipythonMode: IPythonMode;
37
38
  accessedSymbolSet: Set<number>;
38
39
  }
39
40
  export declare function isAnnotationEvaluationPostponed(fileInfo: AnalyzerFileInfo): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzerFileInfo.js","sourceRoot":"","sources":["../../../src/analyzer/analyzerFileInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA6CH,SAAgB,+BAA+B,CAAC,QAA0B;IACtE,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;AAC1F,CAAC;AAFD,0EAEC"}
1
+ {"version":3,"file":"analyzerFileInfo.js","sourceRoot":"","sources":["../../../src/analyzer/analyzerFileInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA8CH,SAAgB,+BAA+B,CAAC,QAA0B;IACtE,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;AAC1F,CAAC;AAFD,0EAEC"}
@@ -1,9 +1,10 @@
1
- import { ClassNode, ExecutionScopeNode, FunctionNode, LambdaNode, ListComprehensionNode, ModuleNode, ParseNode, StringNode } from '../parser/parseNodes';
1
+ import { ClassNode, ExecutionScopeNode, FunctionNode, LambdaNode, ListComprehensionNode, ModuleNode, NameNode, ParseNode, StringNode } from '../parser/parseNodes';
2
2
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
3
  import { FlowNode } from './codeFlowTypes';
4
4
  import { Declaration } from './declaration';
5
5
  import { ImportResult } from './importResult';
6
6
  import { Scope } from './scope';
7
+ import { Symbol } from './symbol';
7
8
  export interface DunderAllInfo {
8
9
  names: string[];
9
10
  stringNodes: StringNode[];
@@ -29,4 +30,6 @@ export declare function getCodeFlowComplexity(node: ExecutionScopeNode): number;
29
30
  export declare function setCodeFlowComplexity(node: ExecutionScopeNode, complexity: number): void;
30
31
  export declare function getDunderAllInfo(node: ModuleNode): DunderAllInfo | undefined;
31
32
  export declare function setDunderAllInfo(node: ModuleNode, names: DunderAllInfo | undefined): void;
33
+ export declare function getTypeParameterSymbol(node: NameNode): Symbol | undefined;
34
+ export declare function setTypeParameterSymbol(node: NameNode, symbol: Symbol): void;
32
35
  export declare function isCodeUnreachable(node: ParseNode): boolean;
@@ -11,7 +11,7 @@
11
11
  * (e.g. hover information).
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.isCodeUnreachable = exports.setDunderAllInfo = exports.getDunderAllInfo = exports.setCodeFlowComplexity = exports.getCodeFlowComplexity = exports.setCodeFlowExpressions = exports.getCodeFlowExpressions = exports.setFileInfo = exports.getFileInfo = exports.setAfterFlowNode = exports.getAfterFlowNode = exports.setFlowNode = exports.getFlowNode = exports.setDeclaration = exports.getDeclaration = exports.setScope = exports.getScope = exports.setImportInfo = exports.getImportInfo = exports.cleanNodeAnalysisInfo = void 0;
14
+ exports.isCodeUnreachable = exports.setTypeParameterSymbol = exports.getTypeParameterSymbol = exports.setDunderAllInfo = exports.getDunderAllInfo = exports.setCodeFlowComplexity = exports.getCodeFlowComplexity = exports.setCodeFlowExpressions = exports.getCodeFlowExpressions = exports.setFileInfo = exports.getFileInfo = exports.setAfterFlowNode = exports.getAfterFlowNode = exports.setFlowNode = exports.getFlowNode = exports.setDeclaration = exports.getDeclaration = exports.setScope = exports.getScope = exports.setImportInfo = exports.getImportInfo = exports.cleanNodeAnalysisInfo = void 0;
15
15
  const codeFlowTypes_1 = require("./codeFlowTypes");
16
16
  // Cleans out all fields that are added by the analyzer phases
17
17
  // (after the post-parse walker).
@@ -25,6 +25,7 @@ function cleanNodeAnalysisInfo(node) {
25
25
  delete analyzerNode.codeFlowExpressions;
26
26
  delete analyzerNode.codeFlowComplexity;
27
27
  delete analyzerNode.dunderAllInfo;
28
+ delete analyzerNode.typeParameterSymbol;
28
29
  }
29
30
  exports.cleanNodeAnalysisInfo = cleanNodeAnalysisInfo;
30
31
  function getImportInfo(node) {
@@ -121,6 +122,16 @@ function setDunderAllInfo(node, names) {
121
122
  analyzerNode.dunderAllInfo = names;
122
123
  }
123
124
  exports.setDunderAllInfo = setDunderAllInfo;
125
+ function getTypeParameterSymbol(node) {
126
+ const analyzerNode = node;
127
+ return analyzerNode.typeParameterSymbol;
128
+ }
129
+ exports.getTypeParameterSymbol = getTypeParameterSymbol;
130
+ function setTypeParameterSymbol(node, symbol) {
131
+ const analyzerNode = node;
132
+ analyzerNode.typeParameterSymbol = symbol;
133
+ }
134
+ exports.setTypeParameterSymbol = setTypeParameterSymbol;
124
135
  function isCodeUnreachable(node) {
125
136
  let curNode = node;
126
137
  // Walk up the parse tree until we find a node with
@@ -1 +1 @@
1
- {"version":3,"file":"analyzerNodeInfo.js","sourceRoot":"","sources":["../../../src/analyzer/analyzerNodeInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzerNodeInfo.js","sourceRoot":"","sources":["../../../src/analyzer/analyzerNodeInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAeH,mDAAsD;AAwDtD,8DAA8D;AAC9D,iCAAiC;AACjC,SAAgB,qBAAqB,CAAC,IAAe;IACjD,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,KAAK,CAAC;IAC1B,OAAO,YAAY,CAAC,WAAW,CAAC;IAChC,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC7B,OAAO,YAAY,CAAC,aAAa,CAAC;IAClC,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC7B,OAAO,YAAY,CAAC,mBAAmB,CAAC;IACxC,OAAO,YAAY,CAAC,kBAAkB,CAAC;IACvC,OAAO,YAAY,CAAC,aAAa,CAAC;IAClC,OAAO,YAAY,CAAC,mBAAmB,CAAC;AAC5C,CAAC;AAXD,sDAWC;AAED,SAAgB,aAAa,CAAC,IAAe;IACzC,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,UAAU,CAAC;AACnC,CAAC;AAHD,sCAGC;AAED,SAAgB,aAAa,CAAC,IAAe,EAAE,UAAwB;IACnE,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;AACzC,CAAC;AAHD,sCAGC;AAED,SAAgB,QAAQ,CAAC,IAAe;IACpC,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,KAAK,CAAC;AAC9B,CAAC;AAHD,4BAGC;AAED,SAAgB,QAAQ,CAAC,IAAe,EAAE,KAAY;IAClD,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,CAAC;AAHD,4BAGC;AAED,SAAgB,cAAc,CAAC,IAAe;IAC1C,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,WAAW,CAAC;AACpC,CAAC;AAHD,wCAGC;AAED,SAAgB,cAAc,CAAC,IAAe,EAAE,IAAiB;IAC7D,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACpC,CAAC;AAHD,wCAGC;AAED,SAAgB,WAAW,CAAC,IAAe;IACvC,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,QAAQ,CAAC;AACjC,CAAC;AAHD,kCAGC;AAED,SAAgB,WAAW,CAAC,IAAe,EAAE,QAAkB;IAC3D,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACrC,CAAC;AAHD,kCAGC;AAED,SAAgB,gBAAgB,CAAC,IAAe;IAC5C,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,aAAa,CAAC;AACtC,CAAC;AAHD,4CAGC;AAED,SAAgB,gBAAgB,CAAC,IAAe,EAAE,QAAkB;IAChE,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,aAAa,GAAG,QAAQ,CAAC;AAC1C,CAAC;AAHD,4CAGC;AAED,SAAgB,WAAW,CAAC,IAAe;IACvC,OAAO,IAAI,CAAC,QAAQ,oBAAyB,EAAE;QAC3C,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC;KACvB;IACD,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,QAAS,CAAC;AAClC,CAAC;AAND,kCAMC;AAED,SAAgB,WAAW,CAAC,IAAgB,EAAE,QAA0B;IACpE,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACrC,CAAC;AAHD,kCAGC;AAED,SAAgB,sBAAsB,CAAC,IAAwB;IAC3D,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,mBAAmB,CAAC;AAC5C,CAAC;AAHD,wDAGC;AAED,SAAgB,sBAAsB,CAAC,IAAwB,EAAE,WAAwB;IACrF,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,mBAAmB,GAAG,WAAW,CAAC;AACnD,CAAC;AAHD,wDAGC;AAED,SAAgB,qBAAqB,CAAC,IAAwB;;IAC1D,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,MAAA,YAAY,CAAC,kBAAkB,mCAAI,CAAC,CAAC;AAChD,CAAC;AAHD,sDAGC;AAED,SAAgB,qBAAqB,CAAC,IAAwB,EAAE,UAAkB;IAC9E,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,kBAAkB,GAAG,UAAU,CAAC;AACjD,CAAC;AAHD,sDAGC;AAED,SAAgB,gBAAgB,CAAC,IAAgB;IAC7C,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,aAAa,CAAC;AACtC,CAAC;AAHD,4CAGC;AAED,SAAgB,gBAAgB,CAAC,IAAgB,EAAE,KAAgC;IAC/E,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,aAAa,GAAG,KAAK,CAAC;AACvC,CAAC;AAHD,4CAGC;AAED,SAAgB,sBAAsB,CAAC,IAAc;IACjD,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,OAAO,YAAY,CAAC,mBAAmB,CAAC;AAC5C,CAAC;AAHD,wDAGC;AAED,SAAgB,sBAAsB,CAAC,IAAc,EAAE,MAAc;IACjE,MAAM,YAAY,GAAG,IAAwB,CAAC;IAC9C,YAAY,CAAC,mBAAmB,GAAG,MAAM,CAAC;AAC9C,CAAC;AAHD,wDAGC;AAED,SAAgB,iBAAiB,CAAC,IAAe;IAC7C,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,mDAAmD;IACnD,2BAA2B;IAC3B,OAAO,OAAO,EAAE;QACZ,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE;YACV,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,yBAAS,CAAC,WAAW,CAAC,CAAC;SACrD;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;KAC5B;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAdD,8CAcC"}
@@ -1,4 +1,4 @@
1
- import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, ListComprehensionNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAnnotationNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
1
+ import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, ListComprehensionNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
2
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
3
  import { ParseTreeWalker } from './parseTreeWalker';
4
4
  export declare class Binder extends ParseTreeWalker {
@@ -7,6 +7,7 @@ export declare class Binder extends ParseTreeWalker {
7
7
  private _deferredBindingTasks;
8
8
  private _currentScope;
9
9
  private _currentFlowNode;
10
+ private _activeTypeParams;
10
11
  private _targetFunctionDeclaration;
11
12
  private _currentBreakTarget;
12
13
  private _currentContinueTarget;
@@ -39,6 +40,8 @@ export declare class Binder extends ParseTreeWalker {
39
40
  visitFunction(node: FunctionNode): boolean;
40
41
  visitLambda(node: LambdaNode): boolean;
41
42
  visitCall(node: CallNode): boolean;
43
+ visitTypeParameterList(node: TypeParameterListNode): boolean;
44
+ visitTypeAlias(node: TypeAliasNode): boolean;
42
45
  visitAssignment(node: AssignmentNode): boolean;
43
46
  visitAssignmentExpression(node: AssignmentExpressionNode): boolean;
44
47
  visitAugmentedAssignment(node: AugmentedAssignmentNode): boolean;
@@ -73,6 +76,7 @@ export declare class Binder extends ParseTreeWalker {
73
76
  visitPatternAs(node: PatternAsNode): boolean;
74
77
  visitPatternCapture(node: PatternCaptureNode): boolean;
75
78
  visitPatternMappingExpandEntry(node: PatternMappingExpandEntryNode): boolean;
79
+ private _removeActiveTypeParameters;
76
80
  private _getNonClassParentScope;
77
81
  private _addSlotsToCurrentScope;
78
82
  private _isInListComprehension;
@@ -108,6 +112,7 @@ export declare class Binder extends ParseTreeWalker {
108
112
  private _bindLoopStatement;
109
113
  private _addAntecedent;
110
114
  private _bindNameToScope;
115
+ private _bindNameValueToScope;
111
116
  private _bindPossibleTupleNamedTarget;
112
117
  private _addImplicitSymbolToCurrentScope;
113
118
  private _addSymbolToCurrentScope;