eslint-plugin-no-mistakes 0.91.0 → 0.91.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-no-mistakes",
3
- "version": "0.91.0",
3
+ "version": "0.91.1",
4
4
  "description": "ESLint and Oxlint rules that keep code static enough for no-mistakes analyzers and coding agents",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  const { createBindingResolver } = require("./vitest-timeout-binding-resolver");
3
- // One resolver per rule/context; scopes and in-progress cycles never cross requests.
3
+ // Hosts can reuse a rule context across files. Each create starts a fresh program.
4
4
  const resolvers = new WeakMap();
5
+ function resetBindingResolver(context) {
6
+ resolvers.delete(context);
7
+ }
5
8
  function resolver(context) {
6
9
  if (!resolvers.has(context)) resolvers.set(context, createBindingResolver(context));
7
10
  return resolvers.get(context);
@@ -40,6 +43,7 @@ function opaqueCallback(node, context) {
40
43
  return resolver(context).opaqueCallback(node);
41
44
  }
42
45
  module.exports = {
46
+ resetBindingResolver,
43
47
  configCall,
44
48
  overrideCall,
45
49
  staticPropertyName,
@@ -4,6 +4,7 @@ const { isFunction, unwrapExpression } = require("./async-ast");
4
4
  const { resolveVariable, isReassigned } = require("./async-target-bindings");
5
5
  const { ruleSuppression } = require("../rule-suppression");
6
6
  const {
7
+ resetBindingResolver,
7
8
  configCall,
8
9
  overrideCall,
9
10
  recordCall,
@@ -43,6 +44,7 @@ module.exports = rule(
43
44
  },
44
45
  },
45
46
  (context) => {
47
+ resetBindingResolver(context);
46
48
  const option = options(context);
47
49
  for (const name of ["defaultMax", "overrideMax"]) {
48
50
  if (option[name] !== undefined && (!Number.isFinite(option[name]) || option[name] <= 0))