@zzzen/pyright-internal 1.2.0-dev.20240317 → 1.2.0-dev.20240324

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 (61) hide show
  1. package/dist/analyzer/analyzerFileInfo.js +1 -1
  2. package/dist/analyzer/analyzerFileInfo.js.map +1 -1
  3. package/dist/analyzer/checker.js +6 -6
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/deprecatedSymbols.js +40 -40
  6. package/dist/analyzer/deprecatedSymbols.js.map +1 -1
  7. package/dist/analyzer/importResolver.js +6 -6
  8. package/dist/analyzer/importResolver.js.map +1 -1
  9. package/dist/analyzer/operations.js +1 -1
  10. package/dist/analyzer/operations.js.map +1 -1
  11. package/dist/analyzer/properties.js +2 -8
  12. package/dist/analyzer/properties.js.map +1 -1
  13. package/dist/analyzer/pythonPathUtils.js +1 -2
  14. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  15. package/dist/analyzer/staticExpressions.js +52 -30
  16. package/dist/analyzer/staticExpressions.js.map +1 -1
  17. package/dist/analyzer/typeEvaluator.js +28 -32
  18. package/dist/analyzer/typeEvaluator.js.map +1 -1
  19. package/dist/analyzer/typeUtils.js +21 -1
  20. package/dist/analyzer/typeUtils.js.map +1 -1
  21. package/dist/backgroundThreadBase.js +8 -1
  22. package/dist/backgroundThreadBase.js.map +1 -1
  23. package/dist/common/configOptions.js +4 -4
  24. package/dist/common/configOptions.js.map +1 -1
  25. package/dist/common/fullAccessHost.js +7 -3
  26. package/dist/common/fullAccessHost.js.map +1 -1
  27. package/dist/common/pythonVersion.d.ts +36 -20
  28. package/dist/common/pythonVersion.js +160 -54
  29. package/dist/common/pythonVersion.js.map +1 -1
  30. package/dist/languageService/completionProvider.js +2 -2
  31. package/dist/languageService/completionProvider.js.map +1 -1
  32. package/dist/parser/parser.js +24 -21
  33. package/dist/parser/parser.js.map +1 -1
  34. package/dist/parser/unicode.js +3456 -2853
  35. package/dist/parser/unicode.js.map +1 -1
  36. package/dist/pyright.js +1 -1
  37. package/dist/pyright.js.map +1 -1
  38. package/dist/tests/checker.test.js +11 -11
  39. package/dist/tests/checker.test.js.map +1 -1
  40. package/dist/tests/config.test.js +7 -7
  41. package/dist/tests/config.test.js.map +1 -1
  42. package/dist/tests/fourSlashParser.test.js +2 -2
  43. package/dist/tests/fourSlashParser.test.js.map +1 -1
  44. package/dist/tests/languageServer.test.js +1 -1
  45. package/dist/tests/languageServer.test.js.map +1 -1
  46. package/dist/tests/lsp/customLsp.d.ts +1 -1
  47. package/dist/tests/lsp/languageServer.js +2 -1
  48. package/dist/tests/lsp/languageServer.js.map +1 -1
  49. package/dist/tests/lsp/languageServerTestUtils.js +6 -6
  50. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  51. package/dist/tests/typeEvaluator1.test.js +16 -12
  52. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  53. package/dist/tests/typeEvaluator2.test.js +2 -2
  54. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  55. package/dist/tests/typeEvaluator3.test.js +56 -56
  56. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  57. package/dist/tests/typeEvaluator4.test.js +21 -21
  58. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  59. package/dist/tests/typeEvaluator5.test.js +27 -27
  60. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  61. package/package.json +1 -1
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.evaluateStaticBoolLikeExpression = exports.evaluateStaticBoolExpression = void 0;
13
13
  const configOptions_1 = require("../common/configOptions");
14
+ const pythonVersion_1 = require("../common/pythonVersion");
14
15
  // Returns undefined if the expression cannot be evaluated
15
16
  // statically as a bool value or true/false if it can.
16
17
  function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases) {
@@ -44,9 +45,9 @@ function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImp
44
45
  node.rightExpression.nodeType === 52 /* ParseNodeType.Tuple */) {
45
46
  // Handle the special case of "sys.version_info >= (3, x)"
46
47
  const comparisonVersion = _convertTupleToVersion(node.rightExpression);
47
- return _evaluateNumericBinaryOperation(node.operator, execEnv.pythonVersion, comparisonVersion);
48
+ return _evaluateVersionBinaryOperation(node.operator, execEnv.pythonVersion, comparisonVersion);
48
49
  }
49
- else if (node.leftExpression.nodeType === 24 /* ParseNodeType.Index */ &&
50
+ if (node.leftExpression.nodeType === 24 /* ParseNodeType.Index */ &&
50
51
  _isSysVersionInfoExpression(node.leftExpression.baseExpression, sysImportAliases) &&
51
52
  node.leftExpression.items.length === 1 &&
52
53
  !node.leftExpression.trailingComma &&
@@ -56,18 +57,19 @@ function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImp
56
57
  !node.leftExpression.items[0].valueExpression.isImaginary &&
57
58
  node.leftExpression.items[0].valueExpression.value === 0 &&
58
59
  node.rightExpression.nodeType === 40 /* ParseNodeType.Number */ &&
59
- node.rightExpression.isInteger) {
60
+ node.rightExpression.isInteger &&
61
+ typeof node.rightExpression.value === 'number') {
60
62
  // Handle the special case of "sys.version_info[0] >= X"
61
- return _evaluateNumericBinaryOperation(node.operator, Math.floor(execEnv.pythonVersion / 256), node.rightExpression.value);
63
+ return _evaluateVersionBinaryOperation(node.operator, new pythonVersion_1.PythonVersion(execEnv.pythonVersion.major, 0), new pythonVersion_1.PythonVersion(node.rightExpression.value, 0));
62
64
  }
63
- else if (_isSysPlatformInfoExpression(node.leftExpression, sysImportAliases) &&
65
+ if (_isSysPlatformInfoExpression(node.leftExpression, sysImportAliases) &&
64
66
  node.rightExpression.nodeType === 48 /* ParseNodeType.StringList */) {
65
67
  // Handle the special case of "sys.platform != 'X'"
66
68
  const comparisonPlatform = node.rightExpression.strings.map((s) => s.value).join('');
67
69
  const expectedPlatformName = _getExpectedPlatformNameFromPlatform(execEnv);
68
70
  return _evaluateStringBinaryOperation(node.operator, expectedPlatformName, comparisonPlatform);
69
71
  }
70
- else if (_isOsNameInfoExpression(node.leftExpression) &&
72
+ if (_isOsNameInfoExpression(node.leftExpression) &&
71
73
  node.rightExpression.nodeType === 48 /* ParseNodeType.StringList */) {
72
74
  // Handle the special case of "os.name == 'X'"
73
75
  const comparisonOsName = node.rightExpression.strings.map((s) => s.value).join('');
@@ -138,49 +140,69 @@ function evaluateStaticBoolLikeExpression(node, execEnv, definedConstants, typin
138
140
  }
139
141
  exports.evaluateStaticBoolLikeExpression = evaluateStaticBoolLikeExpression;
140
142
  function _convertTupleToVersion(node) {
141
- let comparisonVersion;
142
- // Ignore patch versions.
143
143
  if (node.expressions.length >= 2) {
144
144
  if (node.expressions[0].nodeType === 40 /* ParseNodeType.Number */ &&
145
145
  !node.expressions[0].isImaginary &&
146
146
  node.expressions[1].nodeType === 40 /* ParseNodeType.Number */ &&
147
147
  !node.expressions[1].isImaginary) {
148
- const majorVersion = node.expressions[0];
149
- const minorVersion = node.expressions[1];
150
- if (typeof majorVersion.value === 'number' && typeof minorVersion.value === 'number') {
151
- comparisonVersion = majorVersion.value * 256 + minorVersion.value;
148
+ const majorNode = node.expressions[0];
149
+ const minorNode = node.expressions[1];
150
+ if (typeof majorNode.value !== 'number' || typeof minorNode.value !== 'number') {
151
+ return undefined;
152
+ }
153
+ const major = majorNode.value;
154
+ const minor = minorNode.value;
155
+ let micro;
156
+ if (node.expressions.length >= 3 &&
157
+ node.expressions[2].nodeType === 40 /* ParseNodeType.Number */ &&
158
+ !node.expressions[2].isImaginary &&
159
+ typeof node.expressions[2].value === 'number') {
160
+ micro = node.expressions[2].value;
161
+ }
162
+ let releaseLevel;
163
+ if (node.expressions.length >= 4 &&
164
+ node.expressions[3].nodeType === 48 /* ParseNodeType.StringList */ &&
165
+ node.expressions[3].strings.length === 1 &&
166
+ node.expressions[3].strings[0].nodeType === 49 /* ParseNodeType.String */) {
167
+ releaseLevel = node.expressions[3].strings[0].value;
152
168
  }
169
+ let serial;
170
+ if (node.expressions.length >= 5 &&
171
+ node.expressions[4].nodeType === 40 /* ParseNodeType.Number */ &&
172
+ !node.expressions[4].isImaginary &&
173
+ typeof node.expressions[4].value === 'number') {
174
+ serial = node.expressions[4].value;
175
+ }
176
+ return new pythonVersion_1.PythonVersion(major, minor, micro, releaseLevel, serial);
153
177
  }
154
178
  }
155
179
  else if (node.expressions.length === 1) {
156
- const majorVersion = node.expressions[0];
157
- if (typeof majorVersion.value === 'number') {
158
- comparisonVersion = majorVersion.value * 256;
180
+ const major = node.expressions[0];
181
+ if (typeof major.value === 'number') {
182
+ return new pythonVersion_1.PythonVersion(major.value, 0);
159
183
  }
160
184
  }
161
- return comparisonVersion;
185
+ return undefined;
162
186
  }
163
- function _evaluateNumericBinaryOperation(operatorType, leftValue, rightValue) {
187
+ function _evaluateVersionBinaryOperation(operatorType, leftValue, rightValue) {
164
188
  if (leftValue !== undefined && rightValue !== undefined) {
165
- leftValue = BigInt(leftValue);
166
- rightValue = BigInt(rightValue);
167
189
  if (operatorType === 20 /* OperatorType.LessThan */) {
168
- return leftValue < rightValue;
190
+ return leftValue.isLessThan(rightValue);
169
191
  }
170
- else if (operatorType === 21 /* OperatorType.LessThanOrEqual */) {
171
- return leftValue <= rightValue;
192
+ if (operatorType === 21 /* OperatorType.LessThanOrEqual */) {
193
+ return leftValue.isLessOrEqualTo(rightValue);
172
194
  }
173
- else if (operatorType === 15 /* OperatorType.GreaterThan */) {
174
- return leftValue > rightValue;
195
+ if (operatorType === 15 /* OperatorType.GreaterThan */) {
196
+ return leftValue.isGreaterThan(rightValue);
175
197
  }
176
- else if (operatorType === 16 /* OperatorType.GreaterThanOrEqual */) {
177
- return leftValue >= rightValue;
198
+ if (operatorType === 16 /* OperatorType.GreaterThanOrEqual */) {
199
+ return leftValue.isGreaterOrEqualTo(rightValue);
178
200
  }
179
- else if (operatorType === 12 /* OperatorType.Equals */) {
180
- return leftValue === rightValue;
201
+ if (operatorType === 12 /* OperatorType.Equals */) {
202
+ return leftValue.isEqualTo(rightValue);
181
203
  }
182
- else if (operatorType === 28 /* OperatorType.NotEquals */) {
183
- return leftValue !== rightValue;
204
+ if (operatorType === 28 /* OperatorType.NotEquals */) {
205
+ return !leftValue.isEqualTo(rightValue);
184
206
  }
185
207
  }
186
208
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"staticExpressions.js","sourceRoot":"","sources":["../../../../../src/analyzer/staticExpressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staticExpressions.js","sourceRoot":"","sources":["../../../../../src/analyzer/staticExpressions.ts"],"names":[],"mappings":"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"}
@@ -86,21 +86,21 @@ const types_1 = require("./types");
86
86
  // It lists the first version of Python where subscripting is
87
87
  // allowed.
88
88
  const nonSubscriptableBuiltinTypes = new Map([
89
- ['asyncio.futures.Future', pythonVersion_1.PythonVersion.V3_9],
90
- ['asyncio.tasks.Task', pythonVersion_1.PythonVersion.V3_9],
91
- ['builtins.dict', pythonVersion_1.PythonVersion.V3_9],
92
- ['builtins.frozenset', pythonVersion_1.PythonVersion.V3_9],
93
- ['builtins.list', pythonVersion_1.PythonVersion.V3_9],
94
- ['builtins._PathLike', pythonVersion_1.PythonVersion.V3_9],
95
- ['builtins.set', pythonVersion_1.PythonVersion.V3_9],
96
- ['builtins.tuple', pythonVersion_1.PythonVersion.V3_9],
97
- ['collections.ChainMap', pythonVersion_1.PythonVersion.V3_9],
98
- ['collections.Counter', pythonVersion_1.PythonVersion.V3_9],
99
- ['collections.defaultdict', pythonVersion_1.PythonVersion.V3_9],
100
- ['collections.DefaultDict', pythonVersion_1.PythonVersion.V3_9],
101
- ['collections.deque', pythonVersion_1.PythonVersion.V3_9],
102
- ['collections.OrderedDict', pythonVersion_1.PythonVersion.V3_9],
103
- ['queue.Queue', pythonVersion_1.PythonVersion.V3_9],
89
+ ['asyncio.futures.Future', pythonVersion_1.pythonVersion3_9],
90
+ ['asyncio.tasks.Task', pythonVersion_1.pythonVersion3_9],
91
+ ['builtins.dict', pythonVersion_1.pythonVersion3_9],
92
+ ['builtins.frozenset', pythonVersion_1.pythonVersion3_9],
93
+ ['builtins.list', pythonVersion_1.pythonVersion3_9],
94
+ ['builtins._PathLike', pythonVersion_1.pythonVersion3_9],
95
+ ['builtins.set', pythonVersion_1.pythonVersion3_9],
96
+ ['builtins.tuple', pythonVersion_1.pythonVersion3_9],
97
+ ['collections.ChainMap', pythonVersion_1.pythonVersion3_9],
98
+ ['collections.Counter', pythonVersion_1.pythonVersion3_9],
99
+ ['collections.defaultdict', pythonVersion_1.pythonVersion3_9],
100
+ ['collections.DefaultDict', pythonVersion_1.pythonVersion3_9],
101
+ ['collections.deque', pythonVersion_1.pythonVersion3_9],
102
+ ['collections.OrderedDict', pythonVersion_1.pythonVersion3_9],
103
+ ['queue.Queue', pythonVersion_1.pythonVersion3_9],
104
104
  ]);
105
105
  // Some types that do not inherit from others are still considered
106
106
  // "compatible" based on the Python spec. These are sometimes referred
@@ -3662,7 +3662,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
3662
3662
  if (usage.method === 'get') {
3663
3663
  const getAttrSymbol = types_1.ModuleType.getField(baseType, '__getattr__');
3664
3664
  if (getAttrSymbol) {
3665
- const isModuleGetAttrSupported = fileInfo.executionEnvironment.pythonVersion >= pythonVersion_1.PythonVersion.V3_7 ||
3665
+ const isModuleGetAttrSupported = fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_7) ||
3666
3666
  getAttrSymbol.getDeclarations().some((decl) => decl.uri.hasExtension('.pyi'));
3667
3667
  if (isModuleGetAttrSupported) {
3668
3668
  const getAttrTypeResult = getEffectiveTypeOfSymbolForUsage(getAttrSymbol);
@@ -4385,7 +4385,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
4385
4385
  !baseTypeResult.type.aliasName) {
4386
4386
  const minPythonVersion = nonSubscriptableBuiltinTypes.get(baseTypeResult.type.details.fullName);
4387
4387
  if (minPythonVersion !== undefined &&
4388
- fileInfo.executionEnvironment.pythonVersion < minPythonVersion &&
4388
+ fileInfo.executionEnvironment.pythonVersion.isLessThan(minPythonVersion) &&
4389
4389
  !fileInfo.isStubFile) {
4390
4390
  addError(localize_1.LocMessage.classNotRuntimeSubscriptable().format({
4391
4391
  name: baseTypeResult.type.aliasName || baseTypeResult.type.details.name,
@@ -8696,7 +8696,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8696
8696
  typeVar.details.isDefaultExplicit = true;
8697
8697
  const fileInfo = AnalyzerNodeInfo.getFileInfo(errorNode);
8698
8698
  if (!fileInfo.isStubFile &&
8699
- fileInfo.executionEnvironment.pythonVersion < pythonVersion_1.PythonVersion.V3_13 &&
8699
+ fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_13) &&
8700
8700
  classType.details.moduleName !== 'typing_extensions') {
8701
8701
  addError(localize_1.LocMessage.typeVarDefaultIllegal(), defaultValueNode);
8702
8702
  }
@@ -8796,7 +8796,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8796
8796
  }
8797
8797
  const fileInfo = AnalyzerNodeInfo.getFileInfo(errorNode);
8798
8798
  if (!fileInfo.isStubFile &&
8799
- fileInfo.executionEnvironment.pythonVersion < pythonVersion_1.PythonVersion.V3_13 &&
8799
+ fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_13) &&
8800
8800
  classType.details.moduleName !== 'typing_extensions') {
8801
8801
  addError(localize_1.LocMessage.typeVarDefaultIllegal(), expr);
8802
8802
  }
@@ -8855,7 +8855,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
8855
8855
  }
8856
8856
  const fileInfo = AnalyzerNodeInfo.getFileInfo(errorNode);
8857
8857
  if (!fileInfo.isStubFile &&
8858
- fileInfo.executionEnvironment.pythonVersion < pythonVersion_1.PythonVersion.V3_13 &&
8858
+ fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_13) &&
8859
8859
  classType.details.moduleName !== 'typing_extensions') {
8860
8860
  addError(localize_1.LocMessage.typeVarDefaultIllegal(), expr);
8861
8861
  }
@@ -9755,7 +9755,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
9755
9755
  }
9756
9756
  function inferTypeArgFromExpectedEntryType(inferenceContext, entryTypes, isNarrowable) {
9757
9757
  // If the expected type is Any, the resulting type becomes Any.
9758
- if ((0, types_1.isAnyOrUnknown)(inferenceContext.expectedType)) {
9758
+ if ((0, types_1.isAny)(inferenceContext.expectedType)) {
9759
9759
  return inferenceContext.expectedType;
9760
9760
  }
9761
9761
  const typeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(inferenceContext.expectedType));
@@ -11552,7 +11552,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11552
11552
  if (types_1.ClassType.isBuiltIn(argType, 'Protocol')) {
11553
11553
  if (!fileInfo.isStubFile &&
11554
11554
  !types_1.ClassType.isTypingExtensionClass(argType) &&
11555
- fileInfo.executionEnvironment.pythonVersion < pythonVersion_1.PythonVersion.V3_7) {
11555
+ fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_7)) {
11556
11556
  addError(localize_1.LocMessage.protocolIllegal(), arg.valueExpression);
11557
11557
  }
11558
11558
  classType.details.flags |= 16384 /* ClassTypeFlags.ProtocolClass */;
@@ -11562,7 +11562,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
11562
11562
  }
11563
11563
  // If the class directly derives from NamedTuple (in Python 3.6 or
11564
11564
  // newer), it's considered a (read-only) dataclass.
11565
- if (fileInfo.executionEnvironment.pythonVersion >= pythonVersion_1.PythonVersion.V3_6) {
11565
+ if (fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_6)) {
11566
11566
  if (types_1.ClassType.isBuiltIn(argType, 'NamedTuple')) {
11567
11567
  classType.details.flags |=
11568
11568
  4 /* ClassTypeFlags.DataClass */ |
@@ -12249,7 +12249,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
12249
12249
  const paramInfo = paramListDetails.params[paramIndex];
12250
12250
  const argParam = {
12251
12251
  paramCategory: paramInfo.param.category,
12252
- paramType: types_1.FunctionType.getEffectiveParameterType(newMethodType, paramInfo.index),
12252
+ paramType: paramInfo.type,
12253
12253
  requiresTypeVarMatching: false,
12254
12254
  argument: arg,
12255
12255
  errorNode: (_b = arg.valueExpression) !== null && _b !== void 0 ? _b : errorNode,
@@ -12741,17 +12741,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
12741
12741
  // Callable, these type variables are "rescoped" from the function to
12742
12742
  // the Callable.
12743
12743
  function rescopeTypeVarsForCallableReturnType(returnType, functionType, typeParametersSeen) {
12744
- const typeVarsInReturnType = (0, typeUtils_1.getTypeVarArgumentsRecursive)(returnType);
12744
+ const typeVarsInReturnType = (0, typeUtils_1.getTypeVarArgumentsRecursive)(returnType).filter((t) => t.scopeId === functionType.details.typeVarScopeId);
12745
12745
  const rescopedTypeVars = [];
12746
12746
  typeVarsInReturnType.forEach((typeVar) => {
12747
12747
  if (types_1.TypeBase.isInstantiable(typeVar)) {
12748
12748
  typeVar = types_1.TypeVarType.cloneAsInstance(typeVar);
12749
12749
  }
12750
- // If this type variable isn't scoped to this function, it is probably
12751
- // associated with an outer scope.
12752
- if (typeVar.scopeId !== functionType.details.typeVarScopeId) {
12753
- return;
12754
- }
12755
12750
  // If this type variable was already seen in one or more input parameters,
12756
12751
  // don't attempt to rescope it.
12757
12752
  if (typeParametersSeen.some((tp) => (0, types_1.isTypeSame)((0, typeUtils_1.convertToInstance)(tp), typeVar))) {
@@ -13349,7 +13344,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
13349
13344
  reportError = true;
13350
13345
  // Handle PEP 562 support for module-level __getattr__ function,
13351
13346
  // introduced in Python 3.7.
13352
- if (fileInfo.executionEnvironment.pythonVersion >= pythonVersion_1.PythonVersion.V3_7 || fileInfo.isStubFile) {
13347
+ if (fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_7) ||
13348
+ fileInfo.isStubFile) {
13353
13349
  const getAttrSymbol = importLookupInfo.symbolTable.get('__getattr__');
13354
13350
  if (getAttrSymbol) {
13355
13351
  const getAttrType = getEffectiveTypeOfSymbol(getAttrSymbol);
@@ -14155,7 +14151,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
14155
14151
  }
14156
14152
  const fileInfo = AnalyzerNodeInfo.getFileInfo(errorNode);
14157
14153
  if (fileInfo.isStubFile ||
14158
- fileInfo.executionEnvironment.pythonVersion >= pythonVersion_1.PythonVersion.V3_9 ||
14154
+ fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_9) ||
14159
14155
  (0, analyzerFileInfo_1.isAnnotationEvaluationPostponed)(AnalyzerNodeInfo.getFileInfo(errorNode)) ||
14160
14156
  (flags & 4 /* EvaluatorFlags.AllowForwardReferences */) !== 0) {
14161
14157
  // Handle "type" specially, since it needs to act like "Type"