@zzzen/pyright-internal 1.2.0-dev.20230514 → 1.2.0-dev.20230521

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 (145) hide show
  1. package/dist/analyzer/analyzerFileInfo.d.ts +1 -0
  2. package/dist/analyzer/analyzerFileInfo.js +4 -3
  3. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.d.ts +17 -15
  5. package/dist/analyzer/backgroundAnalysisProgram.js +43 -53
  6. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  7. package/dist/analyzer/binder.d.ts +0 -2
  8. package/dist/analyzer/binder.js +2 -20
  9. package/dist/analyzer/binder.js.map +1 -1
  10. package/dist/analyzer/checker.d.ts +1 -1
  11. package/dist/analyzer/checker.js +61 -28
  12. package/dist/analyzer/checker.js.map +1 -1
  13. package/dist/analyzer/constructorTransform.js +5 -1
  14. package/dist/analyzer/constructorTransform.js.map +1 -1
  15. package/dist/analyzer/constructors.js +14 -12
  16. package/dist/analyzer/constructors.js.map +1 -1
  17. package/dist/analyzer/dataClasses.js +3 -0
  18. package/dist/analyzer/dataClasses.js.map +1 -1
  19. package/dist/analyzer/declarationUtils.js +1 -0
  20. package/dist/analyzer/declarationUtils.js.map +1 -1
  21. package/dist/analyzer/importResolver.d.ts +4 -4
  22. package/dist/analyzer/importResolver.js +46 -40
  23. package/dist/analyzer/importResolver.js.map +1 -1
  24. package/dist/analyzer/importResult.d.ts +2 -2
  25. package/dist/analyzer/importStatementUtils.js +2 -2
  26. package/dist/analyzer/importStatementUtils.js.map +1 -1
  27. package/dist/analyzer/packageTypeVerifier.js +1 -1
  28. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  29. package/dist/analyzer/parseTreeUtils.js +2 -34
  30. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  31. package/dist/analyzer/parseTreeWalker.js +2 -2
  32. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  33. package/dist/analyzer/patternMatching.js +1 -0
  34. package/dist/analyzer/patternMatching.js.map +1 -1
  35. package/dist/analyzer/program.d.ts +12 -18
  36. package/dist/analyzer/program.js +25 -12
  37. package/dist/analyzer/program.js.map +1 -1
  38. package/dist/analyzer/protocols.js +3 -1
  39. package/dist/analyzer/protocols.js.map +1 -1
  40. package/dist/analyzer/service.d.ts +4 -4
  41. package/dist/analyzer/service.js +21 -24
  42. package/dist/analyzer/service.js.map +1 -1
  43. package/dist/analyzer/sourceFile.d.ts +1 -6
  44. package/dist/analyzer/sourceFile.js +7 -26
  45. package/dist/analyzer/sourceFile.js.map +1 -1
  46. package/dist/analyzer/sourceMapper.js +1 -1
  47. package/dist/analyzer/sourceMapper.js.map +1 -1
  48. package/dist/analyzer/typeDocStringUtils.js +1 -1
  49. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  50. package/dist/analyzer/typeEvaluator.d.ts +2 -2
  51. package/dist/analyzer/typeEvaluator.js +134 -55
  52. package/dist/analyzer/typeEvaluator.js.map +1 -1
  53. package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
  54. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  55. package/dist/analyzer/typeGuards.js +1 -0
  56. package/dist/analyzer/typeGuards.js.map +1 -1
  57. package/dist/analyzer/typePrinter.js +8 -1
  58. package/dist/analyzer/typePrinter.js.map +1 -1
  59. package/dist/analyzer/typeUtils.js +1 -1
  60. package/dist/analyzer/typeUtils.js.map +1 -1
  61. package/dist/analyzer/typeVarContext.js +2 -2
  62. package/dist/analyzer/typeVarContext.js.map +1 -1
  63. package/dist/analyzer/typedDicts.js +138 -41
  64. package/dist/analyzer/typedDicts.js.map +1 -1
  65. package/dist/analyzer/types.d.ts +7 -1
  66. package/dist/analyzer/types.js +19 -6
  67. package/dist/analyzer/types.js.map +1 -1
  68. package/dist/backgroundAnalysisBase.d.ts +25 -19
  69. package/dist/backgroundAnalysisBase.js +145 -115
  70. package/dist/backgroundAnalysisBase.js.map +1 -1
  71. package/dist/backgroundThreadBase.d.ts +1 -1
  72. package/dist/backgroundThreadBase.js +1 -1
  73. package/dist/backgroundThreadBase.js.map +1 -1
  74. package/dist/commands/dumpFileDebugInfoCommand.js +3 -3
  75. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  76. package/dist/common/configOptions.js +1 -1
  77. package/dist/common/configOptions.js.map +1 -1
  78. package/dist/common/extensibility.d.ts +2 -4
  79. package/dist/common/extensibility.js.map +1 -1
  80. package/dist/common/textRange.js +1 -1
  81. package/dist/common/textRange.js.map +1 -1
  82. package/dist/common/workspaceEditUtils.d.ts +1 -1
  83. package/dist/common/workspaceEditUtils.js +5 -7
  84. package/dist/common/workspaceEditUtils.js.map +1 -1
  85. package/dist/languageServerBase.js +2 -2
  86. package/dist/languageServerBase.js.map +1 -1
  87. package/dist/languageService/autoImporter.d.ts +3 -3
  88. package/dist/languageService/autoImporter.js +3 -3
  89. package/dist/languageService/autoImporter.js.map +1 -1
  90. package/dist/languageService/callHierarchyProvider.js +3 -2
  91. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  92. package/dist/languageService/completionProvider.d.ts +2 -2
  93. package/dist/languageService/completionProvider.js +37 -30
  94. package/dist/languageService/completionProvider.js.map +1 -1
  95. package/dist/languageService/documentSymbolCollector.js +9 -9
  96. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  97. package/dist/languageService/referencesProvider.js +1 -1
  98. package/dist/languageService/referencesProvider.js.map +1 -1
  99. package/dist/languageService/signatureHelpProvider.js +1 -1
  100. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  101. package/dist/languageService/symbolIndexer.d.ts +0 -8
  102. package/dist/languageService/symbolIndexer.js.map +1 -1
  103. package/dist/localization/localize.d.ts +22 -3
  104. package/dist/localization/localize.js +12 -3
  105. package/dist/localization/localize.js.map +1 -1
  106. package/dist/localization/package.nls.en-us.json +14 -5
  107. package/dist/parser/parseNodes.d.ts +8 -8
  108. package/dist/parser/parseNodes.js +20 -10
  109. package/dist/parser/parseNodes.js.map +1 -1
  110. package/dist/parser/parser.d.ts +3 -3
  111. package/dist/parser/parser.js +133 -159
  112. package/dist/parser/parser.js.map +1 -1
  113. package/dist/parser/stringTokenUtils.d.ts +3 -13
  114. package/dist/parser/stringTokenUtils.js +8 -181
  115. package/dist/parser/stringTokenUtils.js.map +1 -1
  116. package/dist/parser/tokenizer.d.ts +3 -0
  117. package/dist/parser/tokenizer.js +211 -24
  118. package/dist/parser/tokenizer.js.map +1 -1
  119. package/dist/parser/tokenizerTypes.d.ts +31 -1
  120. package/dist/parser/tokenizerTypes.js +51 -1
  121. package/dist/parser/tokenizerTypes.js.map +1 -1
  122. package/dist/readonlyAugmentedFileSystem.js +1 -1
  123. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  124. package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
  125. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  126. package/dist/tests/harness/fourslash/testState.js +2 -1
  127. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  128. package/dist/tests/importResolver.test.js +3 -3
  129. package/dist/tests/importResolver.test.js.map +1 -1
  130. package/dist/tests/textRange.test.d.ts +1 -0
  131. package/dist/tests/textRange.test.js +45 -0
  132. package/dist/tests/textRange.test.js.map +1 -0
  133. package/dist/tests/tokenizer.test.js +272 -58
  134. package/dist/tests/tokenizer.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator2.test.js +4 -0
  136. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator3.test.js +10 -0
  138. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  139. package/dist/tests/typeEvaluator4.test.js +7 -2
  140. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  141. package/dist/tests/typeEvaluator5.test.js +8 -0
  142. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  143. package/dist/workspaceFactory.js +3 -5
  144. package/dist/workspaceFactory.js.map +1 -1
  145. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAEH,yDAUiC;AACjC,2EAA6D;AAC7D,2DAAoE;AACpE,6CAU2B;AAC3B,+DAAyD;AAGzD,2CAMqB;AAErB,MAAM,qCAAqC,GACvC;iCAC4C;6BACJ;8BACA,CAAC;AAE7C,SAAS,sBAAsB,CAAC,IAA2C,EAAE,SAAqB;IAC9F,IAAI,IAAI,CAAC,QAAQ,+BAAoC,EAAE;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC5B;IAED,+DAA+D;IAC/D,+BAA+B;IAC/B,OAAO,CACH,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU;QACtC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAC7D,CAAC;AACN,CAAC;AAED,SAAgB,6BAA6B,CACzC,IAAkB,EAClB,YAAqC,EACrC,YAA0B,EAC1B,SAAqB;IAErB,IAAI,SAA6B,CAAC;IAElC,uEAAuE;IACvE,sEAAsE;IACtE,yCAAyC;IACzC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,YAAY,IAAI,IAAA,mCAAqB,EAAC,YAAY,CAAC,EAAE;QACjG,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;KACvE;IAED,aAAa;IACb,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,MAAM,cAAc,GAAG,IAAA,kCAAsB,EAAC,SAAS,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAE1G,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE;YACtC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,IAAA,mCAAqB,EAAC,aAAa,CAAC,EAAE;oBACtC,SAAS,GAAG,oCAAoC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;oBAC9E,IAAI,SAAS,EAAE;wBACX,MAAM;qBACT;iBACJ;aACJ;SACJ;KACJ;IAED,OAAO,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,CAAC;AAnCD,sEAmCC;AAED,SAAgB,wCAAwC,CACpD,IAA4B,EAC5B,aAA4B,EAC5B,YAA0B,EAC1B,SAAwB,EACxB,SAAqB;;IAErB,IAAI,UAAgC,CAAC;IAErC,uEAAuE;IACvE,sEAAsE;IACtE,yCAAyC;IACzC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QAC1C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACtC,UAAU,GAAG,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAChF,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,OAAO,UAAU,CAAC;aACrB;SACJ;KACJ;IAED,aAAa;IACb,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAChD,MAAM,cAAc,GAAG,IAAA,kCAAsB,EAAC,SAAS,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;QAE1G,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE;YACtC,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,0CAAE,IAAI,CAAC;YACtE,IAAI,QAAQ,EAAE;gBACV,UAAU,GAAG,gCAAgC,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;gBACrF,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,MAAM;iBACT;aACJ;SACJ;KACJ;IAED,OAAO,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;AAC5B,CAAC;AAvCD,4FAuCC;AAED,SAAgB,6BAA6B,CACzC,IAAyB,EACzB,YAA0B,EAC1B,SAAwB;IAExB,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,IAAI,YAAY,EAAE;QACd,OAAO,8BAA8B,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;KAChG;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAXD,sEAWC;AAED,SAAgB,+BAA+B,CAAC,IAAyB,EAAE,YAA0B;IACjG,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC;KACrB;IAED,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACxD,IAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;YACzD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM,IAAI,IAAA,gCAAkB,EAAC,QAAQ,CAAC,IAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC,EAAE;YACxE,wGAAwG;YACxG,qEAAqE;YACrE,MAAM,SAAS,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE;gBACX,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9B;SACJ;KACJ;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AApBD,0EAoBC;AAED,SAAgB,iCAAiC,CAAC,OAAqB;IACnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC1B,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjE,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC;aACpB;SACJ;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAXD,8EAWC;AAED,SAAgB,2BAA2B,CAAC,SAAmB,EAAE,YAA0B;IACvF,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,IAAI,IAAA,yBAAU,EAAC,QAAQ,CAAC,EAAE;YACtB,IAAA,8BAAY,EAAC,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/D;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvD;IAED,OAAO,iCAAiC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAXD,kEAWC;AAED,SAAgB,kBAAkB,CAC9B,IAAgB,EAChB,YAAyC,EACzC,YAA0B;;IAE1B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,QAAQ,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACrD,SAAS,GAAG,2BAA2B,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;KACrE;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAZD,gDAYC;AAED,SAAgB,iBAAiB,CAC7B,SAAoB,EACpB,YAAqC,EACrC,YAA0B;IAE1B,IAAI,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;IAC5C,IAAI,CAAC,SAAS,IAAI,YAAY,IAAI,IAAA,gCAAkB,EAAC,YAAY,CAAC,EAAE;QAChE,SAAS,GAAG,iCAAiC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9D,IACI,CAAC,SAAS;YACV,YAAY;YACZ,IAAA,yBAAU,EAAC,YAAY,CAAC,IAAI,CAAC;YAC7B,YAAY,CAAC,IAAI,kBAA0B,EAC7C;YACE,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;gBAChE,IAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;oBACzD,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;oBAC/B,MAAM;iBACT;gBAED,IAAI,IAAA,gCAAkB,EAAC,QAAQ,CAAC,IAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC,EAAE;oBACjE,SAAS,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;oBACtD,MAAM;iBACT;aACJ;SACJ;KACJ;IAED,IAAI,CAAC,SAAS,IAAI,YAAY,EAAE;QAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,2BAA2B,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzF,IAAI,SAAS,EAAE;YACX,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAkB,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,SAAS,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAC;SAC7D;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AArCD,8CAqCC;AAED,SAAgB,+BAA+B,CAAC,IAA4C;;IACxF,OAAO,cAAc,CAAC,YAAY,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAC;AAC3E,CAAC;AAFD,0EAEC;AAED,SAAgB,oBAAoB,CAChC,IAAqC,EACrC,YAA0B;IAE1B,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;SAAM;QACH,OAAO,+BAA+B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KACjF;AACL,CAAC;AAbD,oDAaC;AAED,SAAS,gCAAgC,CACrC,IAAU,EACV,YAAqC,EACrC,YAA0B;IAE1B,IAAI,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACjD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC5B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC/C;QACL,CAAC,CAAC,CAAC;KACN;SAAM,IAAI,YAAY,IAAI,IAAA,yBAAU,EAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAA,mCAAqB,EAAC,YAAY,CAAC,EAAE;QAC7F,MAAM,SAAS,GAAG,YAAY,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,iCAAiC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,SAAS,EAAE;YACX,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;KACJ;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,8BAA8B,CACnC,IAA6B,EAC7B,YAA0B,EAC1B,SAAwB,EACxB,SAAoB;;IAEpB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,mCAAqB,EAAC,IAAI,CAAC,EAAE;QACvC,OAAO;KACV;IAED,MAAM,YAAY,GAAG,MAAA,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,0CAAE,IAAI,CAAC;IACjE,IAAI,CAAC,YAAY,IAAI,CAAC,IAAA,qCAAyB,EAAC,YAAY,CAAC,EAAE;QAC3D,OAAO;KACV;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,sBAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO;KACV;IAED,MAAM,QAAQ,GAAG,IAAA,4BAAgB,EAAC,SAAS,kBAA6B,CAAC;IACzE,qFAAqF;IACrF,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE;QAC/B,IAAI,CAAC,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE;YAChC,SAAS;SACZ;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,8CAA8C;QAC9C,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC;QACxC,IAAI,KAAK,EAAE;YACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,IAAI,IAAA,mCAAqB,EAAC,IAAI,CAAC,EAAE;oBAC7B,MAAM,YAAY,GAAG,MAAA,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,0CAAE,IAAI,CAAC;oBACjE,IAAI,YAAY,IAAI,IAAA,qCAAyB,EAAC,YAAY,CAAC,EAAE;wBACzD,MAAM,SAAS,GAAG,oCAAoC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;wBAC3E,IAAI,SAAS,EAAE;4BACX,OAAO,SAAS,CAAC;yBACpB;qBACJ;iBACJ;aACJ;SACJ;KACJ;IAED,OAAO;AACX,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU,EAAE,YAA6C,EAAE,YAA0B;IAChH,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE;QACnB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvC,IAAI,CAAC,SAAS,IAAI,YAAY,EAAE;QAC5B,SAAS,GAAG,oCAAoC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;KAChF;IAED,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;QACxC,SAAS,GAAG,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;KAC5F;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,oCAAoC,CAAC,YAAiC,EAAE,YAA0B;IACvG,IAAI,SAAS,GAAG,iCAAiC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,IAAI,IAAA,yBAAU,EAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;QACtE,SAAS,GAAG,iCAAiC,CAAC,SAAS,CAAC,CAAC;KAC5D;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAiD;IACxF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,SAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE;YACX,OAAO,SAAS,CAAC;SACpB;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { ImportLookup } from './analyzerFileInfo';
2
2
  import { TypeEvaluator } from './typeEvaluatorTypes';
3
3
  import * as TypePrinter from './typePrinter';
4
4
  import { Type } from './types';
5
- export interface DescriptorTypeResult {
5
+ export interface MemberAccessTypeResult {
6
6
  type: Type;
7
- isAsymmetricDescriptor: boolean;
7
+ isAsymmetricAccessor: boolean;
8
8
  }
9
9
  export declare const maxCodeComplexity = 768;
10
10
  export interface EvaluatorOptions {
@@ -166,7 +166,7 @@ const printExpressionTypes = false;
166
166
  exports.maxCodeComplexity = 768;
167
167
  function createTypeEvaluator(importLookup, evaluatorOptions) {
168
168
  const symbolResolutionStack = [];
169
- const asymmetricDescriptorAssignmentCache = new Set();
169
+ const asymmetricAccessorAssignmentCache = new Set();
170
170
  const speculativeTypeTracker = new typeCacheUtils_1.SpeculativeTypeTracker();
171
171
  const suppressedNodeStack = [];
172
172
  let functionRecursionMap = new Set();
@@ -300,10 +300,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
300
300
  if (isSpeculativeModeInUse(/* node */ undefined)) {
301
301
  return;
302
302
  }
303
- asymmetricDescriptorAssignmentCache.add(node.id);
303
+ asymmetricAccessorAssignmentCache.add(node.id);
304
304
  }
305
- function isAsymmetricDescriptorAssignment(node) {
306
- return asymmetricDescriptorAssignmentCache.has(node.id);
305
+ function isAsymmetricAccessorAssignment(node) {
306
+ return asymmetricAccessorAssignmentCache.has(node.id);
307
307
  }
308
308
  // Determines whether the specified node is contained within
309
309
  // the function node corresponding to the function that we
@@ -822,7 +822,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
822
822
  let isLiteralString = true;
823
823
  // If all of the format expressions are of type LiteralString, then
824
824
  // the resulting formatted string is also LiteralString.
825
- node.expressions.forEach((expr) => {
825
+ node.fieldExpressions.forEach((expr) => {
826
826
  const exprType = getTypeOfExpression(expr).type;
827
827
  (0, typeUtils_1.doForEachSubtype)(exprType, (exprSubtype) => {
828
828
  if (!(0, types_1.isClassInstance)(exprSubtype)) {
@@ -1225,7 +1225,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
1225
1225
  type: memberInfo.type,
1226
1226
  classType: memberInfo.classType,
1227
1227
  isIncomplete: !!memberInfo.isTypeIncomplete,
1228
- isAsymmetricDescriptor: memberInfo.isAsymmetricDescriptor,
1228
+ isAsymmetricAccessor: memberInfo.isAsymmetricAccessor,
1229
1229
  };
1230
1230
  }
1231
1231
  return undefined;
@@ -1272,7 +1272,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
1272
1272
  return {
1273
1273
  type: memberInfo.type,
1274
1274
  isIncomplete: !!memberInfo.isTypeIncomplete,
1275
- isAsymmetricDescriptor: memberInfo.isAsymmetricDescriptor,
1275
+ isAsymmetricAccessor: memberInfo.isAsymmetricAccessor,
1276
1276
  };
1277
1277
  }
1278
1278
  // Determine whether to use the class or metaclass diagnostic addendum.
@@ -2102,7 +2102,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
2102
2102
  setErrorNode: srcExpr,
2103
2103
  setExpectedTypeDiag: expectedTypeDiagAddendum,
2104
2104
  }, 0 /* None */);
2105
- if (setTypeResult.isAsymmetricDescriptor) {
2105
+ if (setTypeResult.isAsymmetricAccessor) {
2106
2106
  setAsymmetricDescriptorAssignment(target);
2107
2107
  }
2108
2108
  writeTypeCache(target.memberName, { type, isIncomplete: isTypeIncomplete }, 0 /* None */);
@@ -2322,6 +2322,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
2322
2322
  // If this is a TypeVarTuple *Ts, convert it to an unpacked tuple
2323
2323
  // *tuple[*Ts].
2324
2324
  if ((0, types_1.isVariadicTypeVar)(subtype)) {
2325
+ if (subtype.isVariadicInUnion) {
2326
+ return subtype;
2327
+ }
2325
2328
  if (tupleClassType && (0, types_1.isInstantiableClass)(tupleClassType)) {
2326
2329
  return (0, typeUtils_1.convertToInstance)((0, typeUtils_1.specializeTupleClass)(tupleClassType, [{ type: subtype, isUnbounded: false }],
2327
2330
  /* isTypeArgumentExplicit */ true,
@@ -3295,7 +3298,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3295
3298
  const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
3296
3299
  let type;
3297
3300
  let isIncomplete = !!baseTypeResult.isIncomplete;
3298
- let isAsymmetricDescriptor;
3301
+ let isAsymmetricAccessor;
3299
3302
  const isRequired = false;
3300
3303
  const isNotRequired = false;
3301
3304
  // If the base type was incomplete and unbound, don't proceed
@@ -3354,7 +3357,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3354
3357
  }
3355
3358
  return { type: types_1.UnknownType.create(isIncomplete), isIncomplete };
3356
3359
  }
3357
- if (flags & 128 /* ExpectingType */) {
3360
+ if (flags & 256 /* ExpectingTypeAnnotation */) {
3358
3361
  if (!isIncomplete) {
3359
3362
  addDiagnostic(AnalyzerNodeInfo.getFileInfo(node).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.typeVarNoMember().format({
3360
3363
  type: printType(baseType),
@@ -3379,8 +3382,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3379
3382
  if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isIncomplete) {
3380
3383
  isIncomplete = true;
3381
3384
  }
3382
- if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isAsymmetricDescriptor) {
3383
- isAsymmetricDescriptor = true;
3385
+ if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isAsymmetricAccessor) {
3386
+ isAsymmetricAccessor = true;
3384
3387
  }
3385
3388
  }
3386
3389
  else {
@@ -3397,8 +3400,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3397
3400
  if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isIncomplete) {
3398
3401
  isIncomplete = true;
3399
3402
  }
3400
- if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isAsymmetricDescriptor) {
3401
- isAsymmetricDescriptor = true;
3403
+ if (typeResult === null || typeResult === void 0 ? void 0 : typeResult.isAsymmetricAccessor) {
3404
+ isAsymmetricAccessor = true;
3402
3405
  }
3403
3406
  }
3404
3407
  break;
@@ -3598,7 +3601,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3598
3601
  /* ignoreEmptyContainers */ false);
3599
3602
  }
3600
3603
  }
3601
- return { type, isIncomplete, isAsymmetricDescriptor, isRequired, isNotRequired };
3604
+ return { type, isIncomplete, isAsymmetricAccessor, isRequired, isNotRequired };
3602
3605
  }
3603
3606
  function getTypeOfClassMemberName(errorNode, classType, isAccessedThroughObject, memberName, usage, diag, flags, bindToType) {
3604
3607
  var _a, _b;
@@ -3733,7 +3736,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3733
3736
  isClassMember: !memberInfo.isInstanceMember,
3734
3737
  isClassVar: memberInfo.isClassVar,
3735
3738
  classType: memberInfo.classType,
3736
- isAsymmetricDescriptor: descriptorResult.isAsymmetricDescriptor,
3739
+ isAsymmetricAccessor: descriptorResult.isAsymmetricAccessor,
3737
3740
  };
3738
3741
  }
3739
3742
  // No attribute of that name was found. If this is a member access
@@ -3745,11 +3748,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3745
3748
  if (generalAttrType) {
3746
3749
  return {
3747
3750
  symbol: undefined,
3748
- type: generalAttrType,
3751
+ type: generalAttrType.type,
3749
3752
  isTypeIncomplete: false,
3750
3753
  isClassMember: false,
3751
3754
  isClassVar: false,
3752
- isAsymmetricDescriptor: false,
3755
+ isAsymmetricAccessor: generalAttrType.isAsymmetricAccessor,
3753
3756
  };
3754
3757
  }
3755
3758
  }
@@ -3762,7 +3765,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3762
3765
  function applyDescriptorAccessMethod(type, memberInfo, baseTypeClass, bindToType, isAccessedThroughObject, flags, errorNode, memberName, usage, diag) {
3763
3766
  const treatConstructorAsClassMember = (flags & 16 /* TreatConstructorAsClassMethod */) !== 0;
3764
3767
  let isTypeValid = true;
3765
- let isAsymmetricDescriptor = false;
3768
+ let isAsymmetricAccessor = false;
3766
3769
  type = (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
3767
3770
  var _a, _b, _c;
3768
3771
  const concreteSubtype = makeTopLevelTypeVarsConcrete(subtype);
@@ -3947,7 +3950,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3947
3950
  // Determine if we're calling __set__ on an asymmetric descriptor or property.
3948
3951
  if (usage.method === 'set' && (0, types_1.isClass)(accessMethod.classType)) {
3949
3952
  if (isAsymmetricDescriptorClass(accessMethod.classType)) {
3950
- isAsymmetricDescriptor = true;
3953
+ isAsymmetricAccessor = true;
3951
3954
  }
3952
3955
  }
3953
3956
  if (returnType) {
@@ -4051,7 +4054,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4051
4054
  if (!isTypeValid) {
4052
4055
  return undefined;
4053
4056
  }
4054
- return { type, isAsymmetricDescriptor };
4057
+ return { type, isAsymmetricAccessor };
4055
4058
  }
4056
4059
  function isAsymmetricDescriptorClass(classType) {
4057
4060
  var _a;
@@ -4085,6 +4088,38 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4085
4088
  classType.isAsymmetricDescriptor = isAsymmetric;
4086
4089
  return isAsymmetric;
4087
4090
  }
4091
+ function isClassWithAsymmetricAttributeAccessor(classType) {
4092
+ var _a;
4093
+ // If the value has already been cached in this type, return the cached value.
4094
+ if (classType.isAsymmetricAttributeAccessor !== undefined) {
4095
+ return classType.isAsymmetricAttributeAccessor;
4096
+ }
4097
+ let isAsymmetric = false;
4098
+ const getterSymbolResult = (0, typeUtils_1.lookUpClassMember)(classType, '__getattr__', 2 /* SkipBaseClasses */);
4099
+ const setterSymbolResult = (0, typeUtils_1.lookUpClassMember)(classType, '__setattr__', 2 /* SkipBaseClasses */);
4100
+ if (!getterSymbolResult || !setterSymbolResult) {
4101
+ isAsymmetric = false;
4102
+ }
4103
+ else {
4104
+ const getterType = getEffectiveTypeOfSymbol(getterSymbolResult.symbol);
4105
+ const setterType = getEffectiveTypeOfSymbol(setterSymbolResult.symbol);
4106
+ // If either the setter or getter is an overload (or some other non-function type),
4107
+ // conservatively assume that it's not asymmetric.
4108
+ if ((0, types_1.isFunction)(getterType) && (0, types_1.isFunction)(setterType)) {
4109
+ // If there's no declared return type on the getter, assume it's symmetric.
4110
+ if (setterType.details.parameters.length >= 3 && getterType.details.declaredReturnType) {
4111
+ const setterValueType = types_1.FunctionType.getEffectiveParameterType(setterType, 2);
4112
+ const getterReturnType = (_a = types_1.FunctionType.getSpecializedReturnType(getterType)) !== null && _a !== void 0 ? _a : types_1.UnknownType.create();
4113
+ if (!(0, types_1.isTypeSame)(setterValueType, getterReturnType)) {
4114
+ isAsymmetric = true;
4115
+ }
4116
+ }
4117
+ }
4118
+ }
4119
+ // Cache the value for next time.
4120
+ classType.isAsymmetricAttributeAccessor = isAsymmetric;
4121
+ return isAsymmetric;
4122
+ }
4088
4123
  // Applies the __getattr__, __setattr__ or __delattr__ method if present.
4089
4124
  function applyAttributeAccessOverride(classType, errorNode, usage, memberName) {
4090
4125
  var _a, _b, _c, _d, _e;
@@ -4139,7 +4174,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4139
4174
  const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(boundMethodType));
4140
4175
  const callResult = validateCallArguments(errorNode, argList, { type: boundMethodType }, typeVarContext,
4141
4176
  /* skipUnknownArgCheck */ true);
4142
- return (_e = callResult.returnType) !== null && _e !== void 0 ? _e : types_1.UnknownType.create();
4177
+ let isAsymmetricAccessor = false;
4178
+ if (usage.method === 'set') {
4179
+ isAsymmetricAccessor = isClassWithAsymmetricAttributeAccessor(classType);
4180
+ }
4181
+ return {
4182
+ type: (_e = callResult.returnType) !== null && _e !== void 0 ? _e : types_1.UnknownType.create(),
4183
+ isAsymmetricAccessor,
4184
+ };
4143
4185
  }
4144
4186
  }
4145
4187
  }
@@ -4475,6 +4517,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4475
4517
  let isIncomplete = baseTypeResult.isIncomplete;
4476
4518
  let isRequired = false;
4477
4519
  let isNotRequired = false;
4520
+ let isReadOnly = false;
4478
4521
  const type = mapSubtypesExpandTypeVars(baseTypeResult.type,
4479
4522
  /* conditionFilter */ undefined, (concreteSubtype, unexpandedSubtype) => {
4480
4523
  var _a;
@@ -4581,6 +4624,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4581
4624
  else if (result.isNotRequired) {
4582
4625
  isNotRequired = true;
4583
4626
  }
4627
+ if (result.isReadOnly) {
4628
+ isReadOnly = true;
4629
+ }
4584
4630
  return result.type;
4585
4631
  }
4586
4632
  if ((0, types_1.isClassInstance)(concreteSubtype)) {
@@ -4612,7 +4658,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4612
4658
  }
4613
4659
  });
4614
4660
  }
4615
- return { type, isIncomplete, isRequired, isNotRequired };
4661
+ return { type, isIncomplete, isReadOnly, isRequired, isNotRequired };
4616
4662
  }
4617
4663
  // Determines the effective variance of the type parameters for a generic
4618
4664
  // type alias. Normally, variance is not important for type aliases, but
@@ -6077,7 +6123,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6077
6123
  if (functionResult.isTypeIncomplete) {
6078
6124
  isTypeIncomplete = true;
6079
6125
  }
6080
- overloadsUsedForCall.push(...functionResult.overloadsUsedForCall);
6126
+ (0, collectionUtils_1.appendArray)(overloadsUsedForCall, functionResult.overloadsUsedForCall);
6081
6127
  if (functionResult.argumentErrors) {
6082
6128
  argumentErrors = true;
6083
6129
  }
@@ -6123,7 +6169,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6123
6169
  return (0, typeUtils_1.convertToInstance)(castToType);
6124
6170
  }
6125
6171
  const functionResult = validateOverloadedFunctionArguments(errorNode, argList, { type: expandedSubtype, isIncomplete: callTypeResult.isIncomplete }, typeVarContext, skipUnknownArgCheck, inferenceContext);
6126
- overloadsUsedForCall.push(...functionResult.overloadsUsedForCall);
6172
+ (0, collectionUtils_1.appendArray)(overloadsUsedForCall, functionResult.overloadsUsedForCall);
6127
6173
  if (functionResult.isTypeIncomplete) {
6128
6174
  isTypeIncomplete = true;
6129
6175
  }
@@ -6265,7 +6311,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6265
6311
  }
6266
6312
  // Assume this is a call to the constructor.
6267
6313
  const constructorResult = (0, constructors_1.validateConstructorArguments)(evaluatorInterface, errorNode, argList, expandedSubtype, skipUnknownArgCheck, inferenceContext);
6268
- overloadsUsedForCall.push(...constructorResult.overloadsUsedForCall);
6314
+ (0, collectionUtils_1.appendArray)(overloadsUsedForCall, constructorResult.overloadsUsedForCall);
6269
6315
  if (constructorResult.argumentErrors) {
6270
6316
  argumentErrors = true;
6271
6317
  }
@@ -6308,7 +6354,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6308
6354
  /* diag */ undefined, 64 /* SkipAttributeAccessOverride */)) === null || _e === void 0 ? void 0 : _e.type;
6309
6355
  if (memberType) {
6310
6356
  const functionResult = validateCallArguments(errorNode, argList, { type: memberType }, typeVarContext, skipUnknownArgCheck, inferenceContext, recursionCount);
6311
- overloadsUsedForCall.push(...functionResult.overloadsUsedForCall);
6357
+ (0, collectionUtils_1.appendArray)(overloadsUsedForCall, functionResult.overloadsUsedForCall);
6312
6358
  if (functionResult.argumentErrors) {
6313
6359
  argumentErrors = true;
6314
6360
  }
@@ -6353,7 +6399,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
6353
6399
  case 10 /* TypeVar */: {
6354
6400
  expandedSubtype = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(expandedSubtype);
6355
6401
  const callResult = validateCallArguments(errorNode, argList, { type: expandedSubtype }, typeVarContext, skipUnknownArgCheck, inferenceContext, recursionCount);
6356
- overloadsUsedForCall.push(...callResult.overloadsUsedForCall);
6402
+ (0, collectionUtils_1.appendArray)(overloadsUsedForCall, callResult.overloadsUsedForCall);
6357
6403
  if (callResult.argumentErrors) {
6358
6404
  argumentErrors = true;
6359
6405
  }
@@ -7057,7 +7103,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7057
7103
  // (i.e. an arg starting with a "**"), we will assume that all parameters
7058
7104
  // are matched.
7059
7105
  if (!unpackedDictionaryArgType && !types_1.FunctionType.isDefaultParameterCheckDisabled(typeResult.type)) {
7060
- const unassignedParams = [...paramMap.keys()].filter((name) => {
7106
+ const unassignedParams = Array.from(paramMap.keys()).filter((name) => {
7061
7107
  const entry = paramMap.get(name);
7062
7108
  return !entry || entry.argsReceived < entry.argsNeeded;
7063
7109
  });
@@ -7691,7 +7737,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
7691
7737
  });
7692
7738
  // Report any missing parameters.
7693
7739
  if (!reportedArgError) {
7694
- let unassignedParams = [...paramMap.keys()];
7740
+ let unassignedParams = Array.from(paramMap.keys());
7695
7741
  // Parameters that have defaults can be left unspecified.
7696
7742
  unassignedParams = unassignedParams.filter((name) => {
7697
7743
  const paramInfo = paramMap.get(name);
@@ -8400,7 +8446,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8400
8446
  else if (baseClass.literalValue !== undefined) {
8401
8447
  addError(localize_1.Localizer.Diagnostic.newTypeLiteral(), argList[1].node || errorNode);
8402
8448
  }
8403
- const classFlags = baseClass.details.flags & ~(1 /* BuiltInClass */ | 2 /* SpecialBuiltIn */);
8449
+ let classFlags = baseClass.details.flags & ~(1 /* BuiltInClass */ | 2 /* SpecialBuiltIn */);
8450
+ classFlags |= 4096 /* Final */;
8404
8451
  const classType = types_1.ClassType.createInstantiable(className, ParseTreeUtils.getClassFullName(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.filePath, classFlags, ParseTreeUtils.getTypeSourceId(errorNode),
8405
8452
  /* declaredMetaclass */ undefined, baseClass.details.effectiveMetaclass);
8406
8453
  classType.details.baseClasses.push(isBaseClassAny ? types_1.AnyType.create() : baseClass);
@@ -9764,7 +9811,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9764
9811
  }
9765
9812
  return (0, typeUtils_1.synthesizeTypeVarForSelfCls)(enclosingClassTypeResult.classType, /* isClsParam */ true);
9766
9813
  }
9767
- function createRequiredType(classType, errorNode, isRequired, typeArgs, flags) {
9814
+ function createRequiredOrReadOnlyType(classType, errorNode, typeArgs, flags) {
9768
9815
  // If no type arguments are provided, the resulting type
9769
9816
  // depends on whether we're evaluating a type annotation or
9770
9817
  // we're in some other context.
@@ -9772,7 +9819,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9772
9819
  return { type: classType };
9773
9820
  }
9774
9821
  if (!typeArgs || typeArgs.length !== 1) {
9775
- addError(isRequired ? localize_1.Localizer.Diagnostic.requiredArgCount() : localize_1.Localizer.Diagnostic.notRequiredArgCount(), errorNode);
9822
+ addError(classType.details.name === 'ReadOnly'
9823
+ ? localize_1.Localizer.Diagnostic.readOnlyArgCount()
9824
+ : classType.details.name === 'Required'
9825
+ ? localize_1.Localizer.Diagnostic.requiredArgCount()
9826
+ : localize_1.Localizer.Diagnostic.notRequiredArgCount(), errorNode);
9776
9827
  return { type: classType };
9777
9828
  }
9778
9829
  const typeArgType = typeArgs[0].type;
@@ -9791,17 +9842,35 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9791
9842
  if ((flags & 1048576 /* AllowRequired */) !== 0) {
9792
9843
  isUsageLegal = true;
9793
9844
  }
9794
- // Nested Required/NotRequired are not allowed.
9795
- if (typeArgs[0].isRequired || typeArgs[0].isNotRequired) {
9796
- isUsageLegal = false;
9845
+ let isReadOnly = typeArgs[0].isReadOnly;
9846
+ let isRequired = typeArgs[0].isRequired;
9847
+ let isNotRequired = typeArgs[0].isNotRequired;
9848
+ if (classType.details.name === 'ReadOnly') {
9849
+ // Nested ReadOnly are not allowed.
9850
+ if (typeArgs[0].isReadOnly) {
9851
+ isUsageLegal = false;
9852
+ }
9853
+ isReadOnly = true;
9797
9854
  }
9855
+ else {
9856
+ // Nested Required/NotRequired are not allowed.
9857
+ if (typeArgs[0].isRequired || typeArgs[0].isNotRequired) {
9858
+ isUsageLegal = false;
9859
+ }
9860
+ isRequired = classType.details.name === 'Required';
9861
+ isNotRequired = classType.details.name === 'NotRequired';
9862
+ }
9863
+ isRequired = classType.details.name === 'Required';
9864
+ isNotRequired = classType.details.name === 'NotRequired';
9798
9865
  if (!isUsageLegal) {
9799
- addError(isRequired
9800
- ? localize_1.Localizer.Diagnostic.requiredNotInTypedDict()
9801
- : localize_1.Localizer.Diagnostic.notRequiredNotInTypedDict(), errorNode);
9866
+ addError(classType.details.name === 'ReadOnly'
9867
+ ? localize_1.Localizer.Diagnostic.readOnlyNotInTypedDict()
9868
+ : classType.details.name === 'Required'
9869
+ ? localize_1.Localizer.Diagnostic.requiredNotInTypedDict()
9870
+ : localize_1.Localizer.Diagnostic.notRequiredNotInTypedDict(), errorNode);
9802
9871
  return { type: types_1.ClassType.cloneForSpecialization(classType, [(0, typeUtils_1.convertToInstance)(typeArgType)], !!typeArgs) };
9803
9872
  }
9804
- return { type: typeArgType, isRequired, isNotRequired: !isRequired };
9873
+ return { type: typeArgType, isReadOnly, isRequired, isNotRequired };
9805
9874
  }
9806
9875
  function createUnpackType(classType, errorNode, typeArgs, flags) {
9807
9876
  // If no type arguments are provided, the resulting type
@@ -9888,6 +9957,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9888
9957
  }
9889
9958
  return {
9890
9959
  type: types_1.TypeBase.cloneForAnnotated(typeArgs[0].type),
9960
+ isReadOnly: typeArgs[0].isReadOnly,
9891
9961
  isRequired: typeArgs[0].isRequired,
9892
9962
  isNotRequired: typeArgs[0].isNotRequired,
9893
9963
  };
@@ -10166,7 +10236,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10166
10236
  // methods that are abstract are overridden and shouldn't
10167
10237
  // cause the TypedDict to be marked as abstract.
10168
10238
  if ((0, types_1.isInstantiableClass)(baseClass) && types_1.ClassType.isBuiltIn(baseClass, '_TypedDict')) {
10169
- baseClass.details.flags &= ~512 /* SupportsAbstractMethods */;
10239
+ baseClass.details.flags &= ~1024 /* SupportsAbstractMethods */;
10170
10240
  }
10171
10241
  }
10172
10242
  }
@@ -10222,6 +10292,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10222
10292
  ['NoReturn', { alias: '', module: 'builtins' }],
10223
10293
  ['Never', { alias: '', module: 'builtins' }],
10224
10294
  ['LiteralString', { alias: '', module: 'builtins' }],
10295
+ ['ReadOnly', { alias: '', module: 'builtins' }],
10225
10296
  ]);
10226
10297
  const aliasMapEntry = specialTypes.get(assignedName);
10227
10298
  if (aliasMapEntry) {
@@ -10611,7 +10682,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10611
10682
  argType = types_1.UnknownType.create();
10612
10683
  }
10613
10684
  else {
10614
- argType = getTypeOfExpression(arg.valueExpression, exprFlags).type;
10685
+ argType = makeTopLevelTypeVarsConcrete(getTypeOfExpression(arg.valueExpression, exprFlags).type);
10615
10686
  }
10616
10687
  // In some stub files, classes are conditionally defined (e.g. based
10617
10688
  // on platform type). We'll assume that the conditional logic is correct
@@ -10708,7 +10779,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10708
10779
  // built-in protocol classes.
10709
10780
  if (types_1.ClassType.supportsAbstractMethods(argType) ||
10710
10781
  (types_1.ClassType.isProtocolClass(argType) && !types_1.ClassType.isBuiltIn(argType))) {
10711
- classType.details.flags |= 512 /* SupportsAbstractMethods */;
10782
+ classType.details.flags |= 1024 /* SupportsAbstractMethods */;
10712
10783
  }
10713
10784
  if (types_1.ClassType.isPropertyClass(argType)) {
10714
10785
  classType.details.flags |= 2048 /* PropertyClass */;
@@ -10760,16 +10831,20 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10760
10831
  metaclassNode = arg.valueExpression;
10761
10832
  }
10762
10833
  }
10763
- else if (arg.name.value === 'total' && types_1.ClassType.isTypedDictClass(classType)) {
10764
- // The "total" parameter name applies only for TypedDict classes.
10834
+ else if (types_1.ClassType.isTypedDictClass(classType) &&
10835
+ (arg.name.value === 'total' || arg.name.value === 'readonly')) {
10836
+ // The "total" and "readonly" parameters apply only for TypedDict classes.
10765
10837
  // PEP 589 specifies that the parameter must be either True or False.
10766
10838
  const constArgValue = (0, staticExpressions_1.evaluateStaticBoolExpression)(arg.valueExpression, fileInfo.executionEnvironment, fileInfo.definedConstants);
10767
10839
  if (constArgValue === undefined) {
10768
- addError(localize_1.Localizer.Diagnostic.typedDictTotalParam(), arg.valueExpression);
10840
+ addError(localize_1.Localizer.Diagnostic.typedDictBoolParam().format({ name: arg.name.value }), arg.valueExpression);
10769
10841
  }
10770
- else if (!constArgValue) {
10842
+ else if (arg.name.value === 'total' && !constArgValue) {
10771
10843
  classType.details.flags |= 256 /* CanOmitDictValues */;
10772
10844
  }
10845
+ else if (arg.name.value === 'readonly' && constArgValue) {
10846
+ classType.details.flags |= 512 /* DictValuesReadOnly */;
10847
+ }
10773
10848
  }
10774
10849
  else {
10775
10850
  // Collect arguments that will be passed to the `__init_subclass__`
@@ -10906,7 +10981,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10906
10981
  classType.details.flags |= 1048576 /* EnumClass */;
10907
10982
  }
10908
10983
  else if (types_1.ClassType.isBuiltIn(metaclassType, 'ABCMeta')) {
10909
- classType.details.flags |= 512 /* SupportsAbstractMethods */;
10984
+ classType.details.flags |= 1024 /* SupportsAbstractMethods */;
10910
10985
  }
10911
10986
  }
10912
10987
  }
@@ -10981,7 +11056,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
10981
11056
  // This needs to be done after dataclass processing.
10982
11057
  if (classType.details.localSlotsNames) {
10983
11058
  let isLimitedToSlots = true;
10984
- const extendedSlotsNames = [...classType.details.localSlotsNames];
11059
+ const extendedSlotsNames = Array.from(classType.details.localSlotsNames);
10985
11060
  classType.details.baseClasses.forEach((baseClass) => {
10986
11061
  if ((0, types_1.isInstantiableClass)(baseClass)) {
10987
11062
  if (!types_1.ClassType.isBuiltIn(baseClass, 'object') &&
@@ -13364,8 +13439,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13364
13439
  return { type: createUnpackType(classType, errorNode, typeArgs, flags) };
13365
13440
  }
13366
13441
  case 'Required':
13367
- case 'NotRequired': {
13368
- return createRequiredType(classType, errorNode, aliasedName === 'Required', typeArgs, flags);
13442
+ case 'NotRequired':
13443
+ case 'ReadOnly': {
13444
+ return createRequiredOrReadOnlyType(classType, errorNode, typeArgs, flags);
13369
13445
  }
13370
13446
  case 'Self': {
13371
13447
  return { type: createSelfType(classType, errorNode, typeArgs) };
@@ -16005,10 +16081,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
16005
16081
  /* diag */ undefined, destTypeVarContextClone, srcTypeVarContextClone, flags, recursionCount)) {
16006
16082
  filteredOverloads.push(overload);
16007
16083
  if (destTypeVarContextClone) {
16008
- destTypeVarSignatures.push(...destTypeVarContextClone.getSignatureContexts());
16084
+ (0, collectionUtils_1.appendArray)(destTypeVarSignatures, destTypeVarContextClone.getSignatureContexts());
16009
16085
  }
16010
16086
  if (srcTypeVarContextClone) {
16011
- srcTypeVarSignatures.push(...srcTypeVarContextClone.getSignatureContexts());
16087
+ (0, collectionUtils_1.appendArray)(srcTypeVarSignatures, srcTypeVarContextClone.getSignatureContexts());
16012
16088
  }
16013
16089
  }
16014
16090
  });
@@ -17783,7 +17859,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
17783
17859
  const textValue = node.strings[0].value;
17784
17860
  // Determine the offset within the file where the string
17785
17861
  // literal's contents begin.
17786
- const valueOffset = node.strings[0].start + node.strings[0].token.prefixLength + node.strings[0].token.quoteMarkLength;
17862
+ let valueOffset = node.strings[0].start;
17863
+ if (node.strings[0].nodeType === 49 /* String */) {
17864
+ valueOffset += node.strings[0].token.prefixLength + node.strings[0].token.quoteMarkLength;
17865
+ }
17787
17866
  const parseOptions = new parser_1.ParseOptions();
17788
17867
  parseOptions.isStubFile = fileInfo.isStubFile;
17789
17868
  parseOptions.pythonVersion = fileInfo.executionEnvironment.pythonVersion;
@@ -17859,7 +17938,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
17859
17938
  validateOverloadedFunctionArguments,
17860
17939
  isAfterNodeReachable,
17861
17940
  isNodeReachable,
17862
- isAsymmetricDescriptorAssignment,
17941
+ isAsymmetricDescriptorAssignment: isAsymmetricAccessorAssignment,
17863
17942
  suppressDiagnostics,
17864
17943
  getDeclarationsForStringNode,
17865
17944
  getDeclarationsForNameNode,