@typescript-eslint/scope-manager 8.0.0-alpha.9 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ID.js +2 -3
- package/dist/ID.js.map +1 -1
- package/dist/ScopeManager.js +17 -18
- package/dist/ScopeManager.js.map +1 -1
- package/dist/analyze.js +1 -2
- package/dist/analyze.js.map +1 -1
- package/dist/assert.js +1 -2
- package/dist/assert.js.map +1 -1
- package/dist/definition/CatchClauseDefinition.js +2 -2
- package/dist/definition/CatchClauseDefinition.js.map +1 -1
- package/dist/definition/ClassNameDefinition.js +2 -2
- package/dist/definition/ClassNameDefinition.js.map +1 -1
- package/dist/definition/DefinitionBase.js +20 -4
- package/dist/definition/DefinitionBase.js.map +1 -1
- package/dist/definition/FunctionNameDefinition.js +2 -2
- package/dist/definition/FunctionNameDefinition.js.map +1 -1
- package/dist/definition/ImplicitGlobalVariableDefinition.js +2 -2
- package/dist/definition/ImplicitGlobalVariableDefinition.js.map +1 -1
- package/dist/definition/ImportBindingDefinition.js +2 -2
- package/dist/definition/ImportBindingDefinition.js.map +1 -1
- package/dist/definition/ParameterDefinition.js +6 -2
- package/dist/definition/ParameterDefinition.js.map +1 -1
- package/dist/definition/TSEnumMemberDefinition.js +2 -2
- package/dist/definition/TSEnumMemberDefinition.js.map +1 -1
- package/dist/definition/TSEnumNameDefinition.js +2 -2
- package/dist/definition/TSEnumNameDefinition.js.map +1 -1
- package/dist/definition/TSModuleNameDefinition.js +2 -2
- package/dist/definition/TSModuleNameDefinition.js.map +1 -1
- package/dist/definition/TypeDefinition.js +2 -2
- package/dist/definition/TypeDefinition.js.map +1 -1
- package/dist/definition/VariableDefinition.js +2 -2
- package/dist/definition/VariableDefinition.js.map +1 -1
- package/dist/lib/base-config.js +1 -1
- package/dist/lib/base-config.js.map +1 -1
- package/dist/lib/decorators.d.ts.map +1 -1
- package/dist/lib/decorators.js +1 -1
- package/dist/lib/decorators.js.map +1 -1
- package/dist/lib/decorators.legacy.d.ts.map +1 -1
- package/dist/lib/decorators.legacy.js +1 -1
- package/dist/lib/decorators.legacy.js.map +1 -1
- package/dist/lib/dom.asynciterable.d.ts.map +1 -1
- package/dist/lib/dom.asynciterable.js +2 -1
- package/dist/lib/dom.asynciterable.js.map +1 -1
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/dom.iterable.d.ts.map +1 -1
- package/dist/lib/dom.iterable.js +3 -1
- package/dist/lib/dom.iterable.js.map +1 -1
- package/dist/lib/dom.js +8 -2
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/es2015.collection.d.ts.map +1 -1
- package/dist/lib/es2015.collection.js +1 -1
- package/dist/lib/es2015.collection.js.map +1 -1
- package/dist/lib/es2015.core.d.ts.map +1 -1
- package/dist/lib/es2015.core.js +10 -1
- package/dist/lib/es2015.core.js.map +1 -1
- package/dist/lib/es2015.d.ts.map +1 -1
- package/dist/lib/es2015.generator.d.ts.map +1 -1
- package/dist/lib/es2015.generator.js +1 -1
- package/dist/lib/es2015.generator.js.map +1 -1
- package/dist/lib/es2015.iterable.d.ts.map +1 -1
- package/dist/lib/es2015.iterable.js +1 -1
- package/dist/lib/es2015.iterable.js.map +1 -1
- package/dist/lib/es2015.js +1 -1
- package/dist/lib/es2015.js.map +1 -1
- package/dist/lib/es2015.promise.d.ts.map +1 -1
- package/dist/lib/es2015.promise.js +1 -1
- package/dist/lib/es2015.promise.js.map +1 -1
- package/dist/lib/es2015.proxy.d.ts.map +1 -1
- package/dist/lib/es2015.proxy.js +1 -1
- package/dist/lib/es2015.proxy.js.map +1 -1
- package/dist/lib/es2015.reflect.d.ts.map +1 -1
- package/dist/lib/es2015.reflect.js +1 -1
- package/dist/lib/es2015.reflect.js.map +1 -1
- package/dist/lib/es2015.symbol.d.ts.map +1 -1
- package/dist/lib/es2015.symbol.js +1 -1
- package/dist/lib/es2015.symbol.js.map +1 -1
- package/dist/lib/es2015.symbol.wellknown.d.ts.map +1 -1
- package/dist/lib/es2015.symbol.wellknown.js +1 -1
- package/dist/lib/es2015.symbol.wellknown.js.map +1 -1
- package/dist/lib/es2016.array.include.d.ts.map +1 -1
- package/dist/lib/es2016.array.include.js +1 -1
- package/dist/lib/es2016.array.include.js.map +1 -1
- package/dist/lib/es2016.d.ts.map +1 -1
- package/dist/lib/es2016.full.d.ts.map +1 -1
- package/dist/lib/es2016.full.js +1 -1
- package/dist/lib/es2016.full.js.map +1 -1
- package/dist/lib/es2016.intl.d.ts.map +1 -1
- package/dist/lib/es2016.intl.js +1 -1
- package/dist/lib/es2016.intl.js.map +1 -1
- package/dist/lib/es2016.js +1 -1
- package/dist/lib/es2016.js.map +1 -1
- package/dist/lib/es2017.d.ts.map +1 -1
- package/dist/lib/es2017.date.d.ts.map +1 -1
- package/dist/lib/es2017.date.js +1 -1
- package/dist/lib/es2017.date.js.map +1 -1
- package/dist/lib/es2017.full.d.ts.map +1 -1
- package/dist/lib/es2017.full.js +1 -1
- package/dist/lib/es2017.full.js.map +1 -1
- package/dist/lib/es2017.intl.d.ts.map +1 -1
- package/dist/lib/es2017.intl.js +1 -1
- package/dist/lib/es2017.intl.js.map +1 -1
- package/dist/lib/es2017.js +1 -1
- package/dist/lib/es2017.js.map +1 -1
- package/dist/lib/es2017.object.d.ts.map +1 -1
- package/dist/lib/es2017.object.js +1 -1
- package/dist/lib/es2017.object.js.map +1 -1
- package/dist/lib/es2017.sharedmemory.d.ts.map +1 -1
- package/dist/lib/es2017.sharedmemory.js +1 -1
- package/dist/lib/es2017.sharedmemory.js.map +1 -1
- package/dist/lib/es2017.string.d.ts.map +1 -1
- package/dist/lib/es2017.string.js +1 -1
- package/dist/lib/es2017.string.js.map +1 -1
- package/dist/lib/es2017.typedarrays.d.ts.map +1 -1
- package/dist/lib/es2017.typedarrays.js +1 -1
- package/dist/lib/es2017.typedarrays.js.map +1 -1
- package/dist/lib/es2018.asyncgenerator.d.ts.map +1 -1
- package/dist/lib/es2018.asyncgenerator.js +1 -1
- package/dist/lib/es2018.asyncgenerator.js.map +1 -1
- package/dist/lib/es2018.asynciterable.d.ts.map +1 -1
- package/dist/lib/es2018.asynciterable.js +1 -1
- package/dist/lib/es2018.asynciterable.js.map +1 -1
- package/dist/lib/es2018.d.ts.map +1 -1
- package/dist/lib/es2018.full.d.ts.map +1 -1
- package/dist/lib/es2018.full.js +1 -1
- package/dist/lib/es2018.full.js.map +1 -1
- package/dist/lib/es2018.intl.d.ts.map +1 -1
- package/dist/lib/es2018.intl.js +1 -1
- package/dist/lib/es2018.intl.js.map +1 -1
- package/dist/lib/es2018.js +1 -1
- package/dist/lib/es2018.js.map +1 -1
- package/dist/lib/es2018.promise.d.ts.map +1 -1
- package/dist/lib/es2018.promise.js +1 -1
- package/dist/lib/es2018.promise.js.map +1 -1
- package/dist/lib/es2018.regexp.d.ts.map +1 -1
- package/dist/lib/es2018.regexp.js +1 -1
- package/dist/lib/es2018.regexp.js.map +1 -1
- package/dist/lib/es2019.array.d.ts.map +1 -1
- package/dist/lib/es2019.array.js +1 -1
- package/dist/lib/es2019.array.js.map +1 -1
- package/dist/lib/es2019.d.ts.map +1 -1
- package/dist/lib/es2019.full.d.ts.map +1 -1
- package/dist/lib/es2019.full.js +1 -1
- package/dist/lib/es2019.full.js.map +1 -1
- package/dist/lib/es2019.intl.d.ts.map +1 -1
- package/dist/lib/es2019.intl.js +1 -1
- package/dist/lib/es2019.intl.js.map +1 -1
- package/dist/lib/es2019.js +1 -1
- package/dist/lib/es2019.js.map +1 -1
- package/dist/lib/es2019.object.d.ts.map +1 -1
- package/dist/lib/es2019.object.js +1 -1
- package/dist/lib/es2019.object.js.map +1 -1
- package/dist/lib/es2019.string.d.ts.map +1 -1
- package/dist/lib/es2019.string.js +1 -1
- package/dist/lib/es2019.string.js.map +1 -1
- package/dist/lib/es2019.symbol.d.ts.map +1 -1
- package/dist/lib/es2019.symbol.js +1 -1
- package/dist/lib/es2019.symbol.js.map +1 -1
- package/dist/lib/es2020.bigint.d.ts.map +1 -1
- package/dist/lib/es2020.bigint.js +1 -1
- package/dist/lib/es2020.bigint.js.map +1 -1
- package/dist/lib/es2020.d.ts.map +1 -1
- package/dist/lib/es2020.date.d.ts.map +1 -1
- package/dist/lib/es2020.date.js +1 -1
- package/dist/lib/es2020.date.js.map +1 -1
- package/dist/lib/es2020.full.d.ts.map +1 -1
- package/dist/lib/es2020.full.js +1 -1
- package/dist/lib/es2020.full.js.map +1 -1
- package/dist/lib/es2020.intl.d.ts.map +1 -1
- package/dist/lib/es2020.intl.js +1 -1
- package/dist/lib/es2020.intl.js.map +1 -1
- package/dist/lib/es2020.js +1 -1
- package/dist/lib/es2020.js.map +1 -1
- package/dist/lib/es2020.number.d.ts.map +1 -1
- package/dist/lib/es2020.number.js +1 -1
- package/dist/lib/es2020.number.js.map +1 -1
- package/dist/lib/es2020.promise.d.ts.map +1 -1
- package/dist/lib/es2020.promise.js +1 -1
- package/dist/lib/es2020.promise.js.map +1 -1
- package/dist/lib/es2020.sharedmemory.d.ts.map +1 -1
- package/dist/lib/es2020.sharedmemory.js +1 -1
- package/dist/lib/es2020.sharedmemory.js.map +1 -1
- package/dist/lib/es2020.string.d.ts.map +1 -1
- package/dist/lib/es2020.string.js +1 -1
- package/dist/lib/es2020.string.js.map +1 -1
- package/dist/lib/es2020.symbol.wellknown.d.ts.map +1 -1
- package/dist/lib/es2020.symbol.wellknown.js +1 -1
- package/dist/lib/es2020.symbol.wellknown.js.map +1 -1
- package/dist/lib/es2021.d.ts.map +1 -1
- package/dist/lib/es2021.full.d.ts.map +1 -1
- package/dist/lib/es2021.full.js +1 -1
- package/dist/lib/es2021.full.js.map +1 -1
- package/dist/lib/es2021.intl.d.ts.map +1 -1
- package/dist/lib/es2021.intl.js +1 -1
- package/dist/lib/es2021.intl.js.map +1 -1
- package/dist/lib/es2021.js +1 -1
- package/dist/lib/es2021.js.map +1 -1
- package/dist/lib/es2021.promise.d.ts.map +1 -1
- package/dist/lib/es2021.promise.js +1 -1
- package/dist/lib/es2021.promise.js.map +1 -1
- package/dist/lib/es2021.string.d.ts.map +1 -1
- package/dist/lib/es2021.string.js +1 -1
- package/dist/lib/es2021.string.js.map +1 -1
- package/dist/lib/es2021.weakref.d.ts.map +1 -1
- package/dist/lib/es2021.weakref.js +1 -1
- package/dist/lib/es2021.weakref.js.map +1 -1
- package/dist/lib/es2022.array.d.ts.map +1 -1
- package/dist/lib/es2022.array.js +1 -1
- package/dist/lib/es2022.array.js.map +1 -1
- package/dist/lib/es2022.d.ts.map +1 -1
- package/dist/lib/es2022.error.d.ts.map +1 -1
- package/dist/lib/es2022.error.js +1 -1
- package/dist/lib/es2022.error.js.map +1 -1
- package/dist/lib/es2022.full.d.ts.map +1 -1
- package/dist/lib/es2022.full.js +1 -1
- package/dist/lib/es2022.full.js.map +1 -1
- package/dist/lib/es2022.intl.d.ts.map +1 -1
- package/dist/lib/es2022.intl.js +1 -1
- package/dist/lib/es2022.intl.js.map +1 -1
- package/dist/lib/es2022.js +1 -1
- package/dist/lib/es2022.js.map +1 -1
- package/dist/lib/es2022.object.d.ts.map +1 -1
- package/dist/lib/es2022.object.js +1 -1
- package/dist/lib/es2022.object.js.map +1 -1
- package/dist/lib/es2022.regexp.d.ts.map +1 -1
- package/dist/lib/es2022.regexp.js +1 -1
- package/dist/lib/es2022.regexp.js.map +1 -1
- package/dist/lib/es2022.sharedmemory.d.ts.map +1 -1
- package/dist/lib/es2022.sharedmemory.js +1 -1
- package/dist/lib/es2022.sharedmemory.js.map +1 -1
- package/dist/lib/es2022.string.d.ts.map +1 -1
- package/dist/lib/es2022.string.js +1 -1
- package/dist/lib/es2022.string.js.map +1 -1
- package/dist/lib/es2023.array.d.ts.map +1 -1
- package/dist/lib/es2023.array.js +1 -1
- package/dist/lib/es2023.array.js.map +1 -1
- package/dist/lib/es2023.collection.d.ts.map +1 -1
- package/dist/lib/es2023.collection.js +1 -1
- package/dist/lib/es2023.collection.js.map +1 -1
- package/dist/lib/es2023.d.ts.map +1 -1
- package/dist/lib/es2023.full.d.ts.map +1 -1
- package/dist/lib/es2023.full.js +1 -1
- package/dist/lib/es2023.full.js.map +1 -1
- package/dist/lib/es2023.intl.d.ts +3 -0
- package/dist/lib/es2023.intl.d.ts.map +1 -0
- package/dist/lib/es2023.intl.js +12 -0
- package/dist/lib/es2023.intl.js.map +1 -0
- package/dist/lib/es2023.js +3 -1
- package/dist/lib/es2023.js.map +1 -1
- package/dist/lib/es5.d.ts.map +1 -1
- package/dist/lib/es5.js +1 -1
- package/dist/lib/es5.js.map +1 -1
- package/dist/lib/es6.d.ts.map +1 -1
- package/dist/lib/es6.js +1 -1
- package/dist/lib/es6.js.map +1 -1
- package/dist/lib/es7.d.ts.map +1 -1
- package/dist/lib/es7.js +1 -1
- package/dist/lib/es7.js.map +1 -1
- package/dist/lib/esnext.array.d.ts.map +1 -1
- package/dist/lib/esnext.array.js +2 -14
- package/dist/lib/esnext.array.js.map +1 -1
- package/dist/lib/esnext.asynciterable.d.ts.map +1 -1
- package/dist/lib/esnext.asynciterable.js +1 -1
- package/dist/lib/esnext.asynciterable.js.map +1 -1
- package/dist/lib/esnext.bigint.d.ts.map +1 -1
- package/dist/lib/esnext.bigint.js +1 -1
- package/dist/lib/esnext.bigint.js.map +1 -1
- package/dist/lib/esnext.collection.d.ts.map +1 -1
- package/dist/lib/esnext.collection.js +4 -1
- package/dist/lib/esnext.collection.js.map +1 -1
- package/dist/lib/esnext.d.ts.map +1 -1
- package/dist/lib/esnext.decorators.d.ts.map +1 -1
- package/dist/lib/esnext.decorators.js +1 -1
- package/dist/lib/esnext.decorators.js.map +1 -1
- package/dist/lib/esnext.disposable.d.ts.map +1 -1
- package/dist/lib/esnext.disposable.js +1 -1
- package/dist/lib/esnext.disposable.js.map +1 -1
- package/dist/lib/esnext.full.d.ts.map +1 -1
- package/dist/lib/esnext.full.js +1 -1
- package/dist/lib/esnext.full.js.map +1 -1
- package/dist/lib/esnext.intl.d.ts.map +1 -1
- package/dist/lib/esnext.intl.js +1 -1
- package/dist/lib/esnext.intl.js.map +1 -1
- package/dist/lib/esnext.js +7 -1
- package/dist/lib/esnext.js.map +1 -1
- package/dist/lib/esnext.object.d.ts.map +1 -1
- package/dist/lib/esnext.object.js +1 -1
- package/dist/lib/esnext.object.js.map +1 -1
- package/dist/lib/esnext.promise.d.ts.map +1 -1
- package/dist/lib/esnext.promise.js +1 -1
- package/dist/lib/esnext.promise.js.map +1 -1
- package/dist/lib/esnext.regexp.d.ts +3 -0
- package/dist/lib/esnext.regexp.d.ts.map +1 -0
- package/dist/lib/esnext.regexp.js +12 -0
- package/dist/lib/esnext.regexp.js.map +1 -0
- package/dist/lib/esnext.string.d.ts.map +1 -1
- package/dist/lib/esnext.string.js +1 -1
- package/dist/lib/esnext.string.js.map +1 -1
- package/dist/lib/esnext.symbol.d.ts.map +1 -1
- package/dist/lib/esnext.symbol.js +1 -1
- package/dist/lib/esnext.symbol.js.map +1 -1
- package/dist/lib/esnext.weakref.d.ts.map +1 -1
- package/dist/lib/esnext.weakref.js +1 -1
- package/dist/lib/esnext.weakref.js.map +1 -1
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +5 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/lib.d.ts.map +1 -1
- package/dist/lib/lib.js +1 -1
- package/dist/lib/lib.js.map +1 -1
- package/dist/lib/scripthost.d.ts.map +1 -1
- package/dist/lib/scripthost.js +1 -1
- package/dist/lib/scripthost.js.map +1 -1
- package/dist/lib/webworker.asynciterable.d.ts.map +1 -1
- package/dist/lib/webworker.asynciterable.js +2 -1
- package/dist/lib/webworker.asynciterable.js.map +1 -1
- package/dist/lib/webworker.d.ts.map +1 -1
- package/dist/lib/webworker.importscripts.d.ts.map +1 -1
- package/dist/lib/webworker.importscripts.js +1 -1
- package/dist/lib/webworker.importscripts.js.map +1 -1
- package/dist/lib/webworker.iterable.d.ts.map +1 -1
- package/dist/lib/webworker.iterable.js +2 -1
- package/dist/lib/webworker.iterable.js.map +1 -1
- package/dist/lib/webworker.js +2 -1
- package/dist/lib/webworker.js.map +1 -1
- package/dist/referencer/ClassVisitor.d.ts +1 -0
- package/dist/referencer/ClassVisitor.d.ts.map +1 -1
- package/dist/referencer/ClassVisitor.js +34 -44
- package/dist/referencer/ClassVisitor.js.map +1 -1
- package/dist/referencer/ExportVisitor.js +8 -21
- package/dist/referencer/ExportVisitor.js.map +1 -1
- package/dist/referencer/ImportVisitor.js +6 -19
- package/dist/referencer/ImportVisitor.js.map +1 -1
- package/dist/referencer/PatternVisitor.js +17 -30
- package/dist/referencer/PatternVisitor.js.map +1 -1
- package/dist/referencer/Reference.js +47 -34
- package/dist/referencer/Reference.js.map +1 -1
- package/dist/referencer/Referencer.d.ts.map +1 -1
- package/dist/referencer/Referencer.js +18 -35
- package/dist/referencer/Referencer.js.map +1 -1
- package/dist/referencer/TypeVisitor.js +22 -35
- package/dist/referencer/TypeVisitor.js.map +1 -1
- package/dist/referencer/Visitor.js +7 -19
- package/dist/referencer/Visitor.js.map +1 -1
- package/dist/referencer/VisitorBase.js +7 -19
- package/dist/referencer/VisitorBase.js.map +1 -1
- package/dist/scope/FunctionExpressionNameScope.js +1 -0
- package/dist/scope/FunctionExpressionNameScope.js.map +1 -1
- package/dist/scope/GlobalScope.js +2 -0
- package/dist/scope/GlobalScope.js.map +1 -1
- package/dist/scope/ScopeBase.js +132 -122
- package/dist/scope/ScopeBase.js.map +1 -1
- package/dist/variable/ESLintScopeVariable.js +24 -0
- package/dist/variable/ESLintScopeVariable.js.map +1 -1
- package/dist/variable/ImplicitLibVariable.js +8 -0
- package/dist/variable/ImplicitLibVariable.js.map +1 -1
- package/dist/variable/VariableBase.js +35 -26
- package/dist/variable/VariableBase.js.map +1 -1
- package/dist/variable/index.d.ts +3 -0
- package/dist/variable/index.d.ts.map +1 -1
- package/dist/variable/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":";;;AAMA,qDAAkD;AAClD,+CAA4D;AAqC1C,4FArCT,yBAAW,OAqCS;AAhC7B,MAAM,OAAQ,SAAQ,yBAAW;IACtB,QAAQ,CAAiB;IAClC,YAAY,gBAA0C;QACpD,KAAK,CACH,gBAAgB,YAAY,OAAO;YACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,gBAAgB,CACrB,CAAC;QAEF,IAAI,CAAC,QAAQ;YACX,gBAAgB,YAAY,OAAO;gBACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ;gBAC3B,CAAC,CAAC,gBAAgB,CAAC;IACzB,CAAC;IAES,YAAY,CACpB,IAAmB,EACnB,QAAgC,EAChC,UAA+B,EAAE,qBAAqB,EAAE,KAAK,EAAE;QAE/D,iFAAiF;QACjF,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,4CAA4C;QAC5C,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAClC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AAEQ,0BAAO"}
|
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _VisitorBase_childVisitorKeys, _VisitorBase_visitChildrenEvenIfSelectorExists;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.VisitorBase = void 0;
|
|
16
4
|
const visitor_keys_1 = require("@typescript-eslint/visitor-keys");
|
|
@@ -21,11 +9,12 @@ function isNode(node) {
|
|
|
21
9
|
return isObject(node) && typeof node.type === 'string';
|
|
22
10
|
}
|
|
23
11
|
class VisitorBase {
|
|
12
|
+
#childVisitorKeys;
|
|
13
|
+
#visitChildrenEvenIfSelectorExists;
|
|
24
14
|
constructor(options) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
__classPrivateFieldSet(this, _VisitorBase_visitChildrenEvenIfSelectorExists, options.visitChildrenEvenIfSelectorExists ?? false, "f");
|
|
15
|
+
this.#childVisitorKeys = options.childVisitorKeys ?? visitor_keys_1.visitorKeys;
|
|
16
|
+
this.#visitChildrenEvenIfSelectorExists =
|
|
17
|
+
options.visitChildrenEvenIfSelectorExists ?? false;
|
|
29
18
|
}
|
|
30
19
|
/**
|
|
31
20
|
* Default method for visiting children.
|
|
@@ -37,7 +26,7 @@ class VisitorBase {
|
|
|
37
26
|
return;
|
|
38
27
|
}
|
|
39
28
|
const exclude = new Set([...excludeArr, 'parent']);
|
|
40
|
-
const children =
|
|
29
|
+
const children = this.#childVisitorKeys[node.type] ?? Object.keys(node);
|
|
41
30
|
for (const key of children) {
|
|
42
31
|
if (exclude.has(key)) {
|
|
43
32
|
continue;
|
|
@@ -68,7 +57,7 @@ class VisitorBase {
|
|
|
68
57
|
const visitor = this[node.type];
|
|
69
58
|
if (visitor) {
|
|
70
59
|
visitor.call(this, node);
|
|
71
|
-
if (!
|
|
60
|
+
if (!this.#visitChildrenEvenIfSelectorExists) {
|
|
72
61
|
return;
|
|
73
62
|
}
|
|
74
63
|
}
|
|
@@ -76,5 +65,4 @@ class VisitorBase {
|
|
|
76
65
|
}
|
|
77
66
|
}
|
|
78
67
|
exports.VisitorBase = VisitorBase;
|
|
79
|
-
_VisitorBase_childVisitorKeys = new WeakMap(), _VisitorBase_visitChildrenEvenIfSelectorExists = new WeakMap();
|
|
80
68
|
//# sourceMappingURL=VisitorBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":";;;AACA,kEAA2E;AAO3E,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;AAChD,CAAC;AACD,SAAS,MAAM,CAAC,IAAa;IAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzD,CAAC;AAMD,MAAe,WAAW;IACf,iBAAiB,CAAc;IAC/B,kCAAkC,CAAU;IACrD,YAAY,OAAuB;QACjC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAAW,CAAC;QACjE,IAAI,CAAC,kCAAkC;YACrC,OAAO,CAAC,iCAAiC,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,IAA0B,EAC1B,aAA0B,EAAE;QAE5B,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAa,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAA0B,CAAY,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsC;QAC1C,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAI,IAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAEQ,kCAAW"}
|
|
@@ -5,6 +5,7 @@ const definition_1 = require("../definition");
|
|
|
5
5
|
const ScopeBase_1 = require("./ScopeBase");
|
|
6
6
|
const ScopeType_1 = require("./ScopeType");
|
|
7
7
|
class FunctionExpressionNameScope extends ScopeBase_1.ScopeBase {
|
|
8
|
+
functionExpressionScope;
|
|
8
9
|
constructor(scopeManager, upperScope, block) {
|
|
9
10
|
super(scopeManager, ScopeType_1.ScopeType.functionExpressionName, upperScope, block, false);
|
|
10
11
|
if (block.id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionExpressionNameScope.js","sourceRoot":"","sources":["../../src/scope/FunctionExpressionNameScope.ts"],"names":[],"mappings":";;;AAEA,8CAAuD;AAGvD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,2BAA4B,SAAQ,qBAIzC;
|
|
1
|
+
{"version":3,"file":"FunctionExpressionNameScope.js","sourceRoot":"","sources":["../../src/scope/FunctionExpressionNameScope.ts"],"names":[],"mappings":";;;AAEA,8CAAuD;AAGvD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,2BAA4B,SAAQ,qBAIzC;IACiB,uBAAuB,CAAO;IAC9C,YACE,YAA0B,EAC1B,UAAgD,EAChD,KAA2C;QAE3C,KAAK,CACH,YAAY,EACZ,qBAAS,CAAC,sBAAsB,EAChC,UAAU,EACV,KAAK,EACL,KAAK,CACN,CAAC;QACF,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,gBAAgB,CACnB,KAAK,CAAC,EAAE,EACR,IAAI,mCAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACtC,CAAC;CACF;AAEQ,kEAA2B"}
|
|
@@ -8,6 +8,8 @@ const variable_1 = require("../variable");
|
|
|
8
8
|
const ScopeBase_1 = require("./ScopeBase");
|
|
9
9
|
const ScopeType_1 = require("./ScopeType");
|
|
10
10
|
class GlobalScope extends ScopeBase_1.ScopeBase {
|
|
11
|
+
// note this is accessed in used in the legacy eslint-scope tests, so it can't be true private
|
|
12
|
+
implicit;
|
|
11
13
|
constructor(scopeManager, block) {
|
|
12
14
|
super(scopeManager, ScopeType_1.ScopeType.global, null, block, false);
|
|
13
15
|
this.implicit = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,sCAAmC;AACnC,qGAAkG;AAIlG,0CAAkD;AAElD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,WAAY,SAAQ,qBAOzB;
|
|
1
|
+
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,sCAAmC;AACnC,qGAAkG;AAIlG,0CAAkD;AAElD,2CAAwC;AACxC,2CAAwC;AAExC,MAAM,WAAY,SAAQ,qBAOzB;IACC,8FAA8F;IAC7E,QAAQ,CAQvB;IAEF,YAAY,YAA0B,EAAE,KAA2B;QACjE,KAAK,CAAC,YAAY,EAAE,qBAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,EAAE,IAAI,GAAG,EAAoB;YAChC,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAEM,sBAAsB,CAC3B,IAAY,EACZ,OAAmC;QAEnC,IAAI,CAAC,cAAc,CACjB,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAC5C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAA0B;QACrC,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,gEAAgE;gBAChE,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE,CAAC;oBAC5C,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,IAAI,EACJ,IAAI,mEAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF;AAEQ,kCAAW"}
|
package/dist/scope/ScopeBase.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _ScopeBase_declaredVariables, _ScopeBase_dynamic, _ScopeBase_staticCloseRef, _ScopeBase_dynamicCloseRef, _ScopeBase_globalCloseRef;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ScopeBase = void 0;
|
|
16
4
|
const types_1 = require("@typescript-eslint/types");
|
|
@@ -111,111 +99,90 @@ const VARIABLE_SCOPE_TYPES = new Set([
|
|
|
111
99
|
ScopeType_1.ScopeType.tsModule,
|
|
112
100
|
]);
|
|
113
101
|
class ScopeBase {
|
|
102
|
+
/**
|
|
103
|
+
* A unique ID for this instance - primarily used to help debugging and testing
|
|
104
|
+
*/
|
|
105
|
+
$id = generator();
|
|
106
|
+
/**
|
|
107
|
+
* The AST node which created this scope.
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
block;
|
|
111
|
+
/**
|
|
112
|
+
* The array of child scopes. This does not include grandchild scopes.
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
childScopes = [];
|
|
116
|
+
/**
|
|
117
|
+
* A map of the variables for each node in this scope.
|
|
118
|
+
* This is map is a pointer to the one in the parent ScopeManager instance
|
|
119
|
+
*/
|
|
120
|
+
#declaredVariables;
|
|
121
|
+
/**
|
|
122
|
+
* Generally, through the lexical scoping of JS you can always know which variable an identifier in the source code
|
|
123
|
+
* refers to. There are a few exceptions to this rule. With `global` and `with` scopes you can only decide at runtime
|
|
124
|
+
* which variable a reference refers to.
|
|
125
|
+
* All those scopes are considered "dynamic".
|
|
126
|
+
*/
|
|
127
|
+
#dynamic;
|
|
128
|
+
/**
|
|
129
|
+
* Whether this scope is created by a FunctionExpression.
|
|
130
|
+
* @public
|
|
131
|
+
*/
|
|
132
|
+
functionExpressionScope = false;
|
|
133
|
+
/**
|
|
134
|
+
* Whether 'use strict' is in effect in this scope.
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
isStrict;
|
|
138
|
+
/**
|
|
139
|
+
* List of {@link Reference}s that are left to be resolved (i.e. which
|
|
140
|
+
* need to be linked to the variable they refer to).
|
|
141
|
+
*/
|
|
142
|
+
leftToResolve = [];
|
|
143
|
+
/**
|
|
144
|
+
* Any variable {@link Reference} found in this scope.
|
|
145
|
+
* This includes occurrences of local variables as well as variables from parent scopes (including the global scope).
|
|
146
|
+
* For local variables this also includes defining occurrences (like in a 'var' statement).
|
|
147
|
+
* In a 'function' scope this does not include the occurrences of the formal parameter in the parameter list.
|
|
148
|
+
* @public
|
|
149
|
+
*/
|
|
150
|
+
references = [];
|
|
151
|
+
/**
|
|
152
|
+
* The map from variable names to variable objects.
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
set = new Map();
|
|
156
|
+
/**
|
|
157
|
+
* The {@link Reference}s that are not resolved with this scope.
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
through = [];
|
|
161
|
+
type;
|
|
162
|
+
/**
|
|
163
|
+
* Reference to the parent {@link Scope}.
|
|
164
|
+
* @public
|
|
165
|
+
*/
|
|
166
|
+
upper;
|
|
167
|
+
/**
|
|
168
|
+
* The scoped {@link Variable}s of this scope.
|
|
169
|
+
* In the case of a 'function' scope this includes the automatic argument `arguments` as its first element, as well
|
|
170
|
+
* as all further formal arguments.
|
|
171
|
+
* This does not include variables which are defined in child scopes.
|
|
172
|
+
* @public
|
|
173
|
+
*/
|
|
174
|
+
variables = [];
|
|
175
|
+
/**
|
|
176
|
+
* For scopes that can contain variable declarations, this is a self-reference.
|
|
177
|
+
* For other scope types this is the *variableScope* value of the parent scope.
|
|
178
|
+
* @public
|
|
179
|
+
*/
|
|
180
|
+
variableScope;
|
|
114
181
|
constructor(scopeManager, type, upperScope, block, isMethodDefinition) {
|
|
115
|
-
/**
|
|
116
|
-
* A unique ID for this instance - primarily used to help debugging and testing
|
|
117
|
-
*/
|
|
118
|
-
this.$id = generator();
|
|
119
|
-
/**
|
|
120
|
-
* The array of child scopes. This does not include grandchild scopes.
|
|
121
|
-
* @public
|
|
122
|
-
*/
|
|
123
|
-
this.childScopes = [];
|
|
124
|
-
/**
|
|
125
|
-
* A map of the variables for each node in this scope.
|
|
126
|
-
* This is map is a pointer to the one in the parent ScopeManager instance
|
|
127
|
-
*/
|
|
128
|
-
_ScopeBase_declaredVariables.set(this, void 0);
|
|
129
|
-
/**
|
|
130
|
-
* Generally, through the lexical scoping of JS you can always know which variable an identifier in the source code
|
|
131
|
-
* refers to. There are a few exceptions to this rule. With `global` and `with` scopes you can only decide at runtime
|
|
132
|
-
* which variable a reference refers to.
|
|
133
|
-
* All those scopes are considered "dynamic".
|
|
134
|
-
*/
|
|
135
|
-
_ScopeBase_dynamic.set(this, void 0);
|
|
136
|
-
/**
|
|
137
|
-
* Whether this scope is created by a FunctionExpression.
|
|
138
|
-
* @public
|
|
139
|
-
*/
|
|
140
|
-
this.functionExpressionScope = false;
|
|
141
|
-
/**
|
|
142
|
-
* List of {@link Reference}s that are left to be resolved (i.e. which
|
|
143
|
-
* need to be linked to the variable they refer to).
|
|
144
|
-
*/
|
|
145
|
-
this.leftToResolve = [];
|
|
146
|
-
/**
|
|
147
|
-
* Any variable {@link Reference} found in this scope.
|
|
148
|
-
* This includes occurrences of local variables as well as variables from parent scopes (including the global scope).
|
|
149
|
-
* For local variables this also includes defining occurrences (like in a 'var' statement).
|
|
150
|
-
* In a 'function' scope this does not include the occurrences of the formal parameter in the parameter list.
|
|
151
|
-
* @public
|
|
152
|
-
*/
|
|
153
|
-
this.references = [];
|
|
154
|
-
/**
|
|
155
|
-
* The map from variable names to variable objects.
|
|
156
|
-
* @public
|
|
157
|
-
*/
|
|
158
|
-
this.set = new Map();
|
|
159
|
-
/**
|
|
160
|
-
* The {@link Reference}s that are not resolved with this scope.
|
|
161
|
-
* @public
|
|
162
|
-
*/
|
|
163
|
-
this.through = [];
|
|
164
|
-
/**
|
|
165
|
-
* The scoped {@link Variable}s of this scope.
|
|
166
|
-
* In the case of a 'function' scope this includes the automatic argument `arguments` as its first element, as well
|
|
167
|
-
* as all further formal arguments.
|
|
168
|
-
* This does not include variables which are defined in child scopes.
|
|
169
|
-
* @public
|
|
170
|
-
*/
|
|
171
|
-
this.variables = [];
|
|
172
|
-
_ScopeBase_staticCloseRef.set(this, (ref) => {
|
|
173
|
-
const resolve = () => {
|
|
174
|
-
const name = ref.identifier.name;
|
|
175
|
-
const variable = this.set.get(name);
|
|
176
|
-
if (!variable) {
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
if (!this.isValidResolution(ref, variable)) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
// make sure we don't match a type reference to a value variable
|
|
183
|
-
const isValidTypeReference = ref.isTypeReference && variable.isTypeVariable;
|
|
184
|
-
const isValidValueReference = ref.isValueReference && variable.isValueVariable;
|
|
185
|
-
if (!isValidTypeReference && !isValidValueReference) {
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
variable.references.push(ref);
|
|
189
|
-
ref.resolved = variable;
|
|
190
|
-
return true;
|
|
191
|
-
};
|
|
192
|
-
if (!resolve()) {
|
|
193
|
-
this.delegateToUpperScope(ref);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
_ScopeBase_dynamicCloseRef.set(this, (ref) => {
|
|
197
|
-
// notify all names are through to global
|
|
198
|
-
let current = this;
|
|
199
|
-
do {
|
|
200
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
201
|
-
current.through.push(ref);
|
|
202
|
-
current = current.upper;
|
|
203
|
-
/* eslint-enable @typescript-eslint/no-non-null-assertion */
|
|
204
|
-
} while (current);
|
|
205
|
-
});
|
|
206
|
-
_ScopeBase_globalCloseRef.set(this, (ref, scopeManager) => {
|
|
207
|
-
// let/const/class declarations should be resolved statically.
|
|
208
|
-
// others should be resolved dynamically.
|
|
209
|
-
if (this.shouldStaticallyCloseForGlobal(ref, scopeManager)) {
|
|
210
|
-
__classPrivateFieldGet(this, _ScopeBase_staticCloseRef, "f").call(this, ref);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
__classPrivateFieldGet(this, _ScopeBase_dynamicCloseRef, "f").call(this, ref);
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
182
|
const upperScopeAsScopeBase = upperScope;
|
|
217
183
|
this.type = type;
|
|
218
|
-
|
|
184
|
+
this.#dynamic =
|
|
185
|
+
this.type === ScopeType_1.ScopeType.global || this.type === ScopeType_1.ScopeType.with;
|
|
219
186
|
this.block = block;
|
|
220
187
|
this.variableScope = this.isVariableScope()
|
|
221
188
|
? this
|
|
@@ -229,14 +196,14 @@ class ScopeBase {
|
|
|
229
196
|
this.isStrict = isStrictScope(this, block, isMethodDefinition);
|
|
230
197
|
// this is guaranteed to be correct at runtime
|
|
231
198
|
upperScopeAsScopeBase?.childScopes.push(this);
|
|
232
|
-
|
|
199
|
+
this.#declaredVariables = scopeManager.declaredVariables;
|
|
233
200
|
registerScope(scopeManager, this);
|
|
234
201
|
}
|
|
235
202
|
isVariableScope() {
|
|
236
203
|
return VARIABLE_SCOPE_TYPES.has(this.type);
|
|
237
204
|
}
|
|
238
205
|
shouldStaticallyClose() {
|
|
239
|
-
return !
|
|
206
|
+
return !this.#dynamic;
|
|
240
207
|
}
|
|
241
208
|
shouldStaticallyCloseForGlobal(ref, scopeManager) {
|
|
242
209
|
// On global scope, let/const/class declarations should be resolved statically.
|
|
@@ -263,16 +230,60 @@ class ScopeBase {
|
|
|
263
230
|
return true;
|
|
264
231
|
}));
|
|
265
232
|
}
|
|
233
|
+
#staticCloseRef = (ref) => {
|
|
234
|
+
const resolve = () => {
|
|
235
|
+
const name = ref.identifier.name;
|
|
236
|
+
const variable = this.set.get(name);
|
|
237
|
+
if (!variable) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
if (!this.isValidResolution(ref, variable)) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
// make sure we don't match a type reference to a value variable
|
|
244
|
+
const isValidTypeReference = ref.isTypeReference && variable.isTypeVariable;
|
|
245
|
+
const isValidValueReference = ref.isValueReference && variable.isValueVariable;
|
|
246
|
+
if (!isValidTypeReference && !isValidValueReference) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
variable.references.push(ref);
|
|
250
|
+
ref.resolved = variable;
|
|
251
|
+
return true;
|
|
252
|
+
};
|
|
253
|
+
if (!resolve()) {
|
|
254
|
+
this.delegateToUpperScope(ref);
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
#dynamicCloseRef = (ref) => {
|
|
258
|
+
// notify all names are through to global
|
|
259
|
+
let current = this;
|
|
260
|
+
do {
|
|
261
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
262
|
+
current.through.push(ref);
|
|
263
|
+
current = current.upper;
|
|
264
|
+
/* eslint-enable @typescript-eslint/no-non-null-assertion */
|
|
265
|
+
} while (current);
|
|
266
|
+
};
|
|
267
|
+
#globalCloseRef = (ref, scopeManager) => {
|
|
268
|
+
// let/const/class declarations should be resolved statically.
|
|
269
|
+
// others should be resolved dynamically.
|
|
270
|
+
if (this.shouldStaticallyCloseForGlobal(ref, scopeManager)) {
|
|
271
|
+
this.#staticCloseRef(ref);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
this.#dynamicCloseRef(ref);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
266
277
|
close(scopeManager) {
|
|
267
278
|
let closeRef;
|
|
268
279
|
if (this.shouldStaticallyClose()) {
|
|
269
|
-
closeRef =
|
|
280
|
+
closeRef = this.#staticCloseRef;
|
|
270
281
|
}
|
|
271
282
|
else if (this.type !== 'global') {
|
|
272
|
-
closeRef =
|
|
283
|
+
closeRef = this.#dynamicCloseRef;
|
|
273
284
|
}
|
|
274
285
|
else {
|
|
275
|
-
closeRef =
|
|
286
|
+
closeRef = this.#globalCloseRef;
|
|
276
287
|
}
|
|
277
288
|
// Try Resolving all references in this scope.
|
|
278
289
|
(0, assert_1.assert)(this.leftToResolve);
|
|
@@ -295,10 +306,10 @@ class ScopeBase {
|
|
|
295
306
|
if (node == null) {
|
|
296
307
|
return;
|
|
297
308
|
}
|
|
298
|
-
let variables =
|
|
309
|
+
let variables = this.#declaredVariables.get(node);
|
|
299
310
|
if (variables == null) {
|
|
300
311
|
variables = [];
|
|
301
|
-
|
|
312
|
+
this.#declaredVariables.set(node, variables);
|
|
302
313
|
}
|
|
303
314
|
if (!variables.includes(variable)) {
|
|
304
315
|
variables.push(variable);
|
|
@@ -347,5 +358,4 @@ class ScopeBase {
|
|
|
347
358
|
}
|
|
348
359
|
}
|
|
349
360
|
exports.ScopeBase = ScopeBase;
|
|
350
|
-
_ScopeBase_declaredVariables = new WeakMap(), _ScopeBase_dynamic = new WeakMap(), _ScopeBase_staticCloseRef = new WeakMap(), _ScopeBase_dynamicCloseRef = new WeakMap(), _ScopeBase_globalCloseRef = new WeakMap();
|
|
351
361
|
//# sourceMappingURL=ScopeBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeBase.js","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScopeBase.js","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,sCAAmC;AAEnC,8CAA+C;AAC/C,8BAA0C;AAE1C,uDAIiC;AAEjC,0CAAuC;AAKvC,2CAAwC;AAGxC;;GAEG;AACH,SAAS,aAAa,CACpB,KAAY,EACZ,KAAoB,EACpB,kBAA2B;IAE3B,IAAI,IAAmE,CAAC;IAExE,qEAAqE;IACrE,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,KAAK;QAC9B,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,eAAe;QACxC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,YAAY;QACrC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,UAAU;QACnC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM;QAC/B,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM;QAC/B,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,QAAQ;QACjC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,IAAI,EAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,KAA+B,CAAC;QACrD,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,sBAAc,CAAC,uBAAuB;gBACzC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,EAAE,CAAC;oBAC7D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBACzB,MAAM;YAER,KAAK,sBAAc,CAAC,OAAO;gBACzB,IAAI,GAAG,YAAY,CAAC;gBACpB,MAAM;YAER;gBACE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,GAAG,KAA6B,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iCAAiC;IACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,KAAK,cAAc,IAAI,IAAI,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,YAA0B,EAAE,KAAY;IAC7D,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,sBAAiB,GAAE,CAAC;AAGtC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,qBAAS,CAAC,qBAAqB;IAC/B,qBAAS,CAAC,gBAAgB;IAC1B,qBAAS,CAAC,QAAQ;IAClB,qBAAS,CAAC,MAAM;IAChB,qBAAS,CAAC,MAAM;IAChB,qBAAS,CAAC,QAAQ;CACnB,CAAC,CAAC;AAGH,MAAe,SAAS;IAKtB;;OAEG;IACa,GAAG,GAAW,SAAS,EAAE,CAAC;IAE1C;;;OAGG;IACa,KAAK,CAAQ;IAC7B;;;OAGG;IACa,WAAW,GAAY,EAAE,CAAC;IAC1C;;;OAGG;IACM,kBAAkB,CAAqC;IAChE;;;;;OAKG;IACH,QAAQ,CAAU;IAClB;;;OAGG;IACa,uBAAuB,GAAY,KAAK,CAAC;IACzD;;;OAGG;IACI,QAAQ,CAAU;IACzB;;;OAGG;IACO,aAAa,GAAuB,EAAE,CAAC;IACjD;;;;;;OAMG;IACa,UAAU,GAAgB,EAAE,CAAC;IAC7C;;;OAGG;IACa,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD;;;OAGG;IACa,OAAO,GAAgB,EAAE,CAAC;IAC1B,IAAI,CAAO;IAC3B;;;OAGG;IACa,KAAK,CAAQ;IAC7B;;;;;;OAMG;IACa,SAAS,GAAe,EAAE,CAAC;IAC3C;;;;OAIG;IACa,aAAa,CAAgB;IAE7C,YACE,YAA0B,EAC1B,IAAU,EACV,UAAiB,EACjB,KAAY,EACZ,kBAA2B;QAE3B,MAAM,qBAAqB,GAAG,UAAU,CAAC;QAEzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ;YACX,IAAI,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAS,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE;YACzC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,oEAAoE;gBACpE,qBAAsB,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QAExB;;;WAGG;QACH,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAa,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAExE,8CAA8C;QAC9C,qBAAqB,EAAE,WAAW,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QAEzD,aAAa,CAAC,YAAY,EAAE,IAAa,CAAC,CAAC;IAC7C,CAAC;IAEO,eAAe;QACrB,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEM,qBAAqB;QAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEO,8BAA8B,CACpC,GAAc,EACd,YAA0B;QAE1B,+EAA+E;QAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+BAA+B;QAE/B,oFAAoF;QACpF,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mEAAmE;QACnE,WAAW;QACX,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,OAAO,CACL,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,GAAG,CAAC,IAAI,KAAK,2BAAc,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACtE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,eAAe,GAAG,CAAC,GAAc,EAAQ,EAAE;QACzC,MAAM,OAAO,GAAG,GAAY,EAAE;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,gEAAgE;YAChE,MAAM,oBAAoB,GACxB,GAAG,CAAC,eAAe,IAAI,QAAQ,CAAC,cAAc,CAAC;YACjD,MAAM,qBAAqB,GACzB,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,eAAe,CAAC;YACnD,IAAI,CAAC,oBAAoB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAExB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,GAAc,EAAQ,EAAE;QAC1C,yCAAyC;QACzC,IAAI,OAAO,GAAG,IAAoB,CAAC;QAEnC,GAAG,CAAC;YACF,6DAA6D;YAC7D,OAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,GAAG,OAAQ,CAAC,KAAK,CAAC;YACzB,4DAA4D;QAC9D,CAAC,QAAQ,OAAO,EAAE;IACpB,CAAC,CAAC;IAEF,eAAe,GAAG,CAAC,GAAc,EAAE,YAA0B,EAAQ,EAAE;QACrE,8DAA8D;QAC9D,yCAAyC;QACzC,IAAI,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEK,KAAK,CAAC,YAA0B;QACrC,IAAI,QAA8D,CAAC;QAEnE,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QAClC,CAAC;QAED,8CAA8C;QAC9C,IAAA,eAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IACO,iBAAiB,CAAC,IAAe,EAAE,SAAmB;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAES,oBAAoB,CAAC,GAAc;QAC1C,IAAI,CAAC,KAA8B,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,0BAA0B,CAChC,QAAkB,EAClB,IAAsC;QAEtC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAES,cAAc,CACtB,cAAiC,EACjC,GAA0B,EAC1B,SAAqB,EACrB,IAAgC,EAChC,GAAsB;QAEtB,MAAM,IAAI,GACR,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QAC5E,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ;gBACN,OAAO,cAAc,KAAK,QAAQ;oBAChC,CAAC,CAAC,IAAI,mBAAQ,CAAC,IAAI,EAAE,IAAa,CAAC;oBACnC,CAAC,CAAC,cAAc,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,IAAyB,EAAE,GAAe;QAChE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAEM,uBAAuB,CAC5B,IAA4B,EAC5B,GAAe;QAEf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;IAEM,cAAc,CACnB,IAAkD,EAClD,SAAwB,yBAAa,CAAC,IAAI,EAC1C,SAAsC,EACtC,mBAAoD,EACpD,IAAI,GAAG,KAAK;QAEZ,MAAM,GAAG,GAAG,IAAI,qBAAS,CACvB,IAAI,EACJ,IAAa,EACb,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,IAAI,EACJ,6BAAiB,CAAC,KAAK,CACxB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa,CAAC,IAAyB;QAC5C,MAAM,GAAG,GAAG,IAAI,qBAAS,CACvB,IAAI,EACJ,IAAa,EACb,yBAAa,CAAC,IAAI,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,6BAAiB,CAAC,IAAI,CACvB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,sBAAsB,CAAC,IAAyB;QACrD,MAAM,GAAG,GAAG,IAAI,qBAAS,CACvB,IAAI,EACJ,IAAa,EACb,yBAAa,CAAC,IAAI,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,6BAAiB,CAAC,IAAI,GAAG,6BAAiB,CAAC,KAAK,CACjD,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAEQ,8BAAS"}
|
|
@@ -7,6 +7,30 @@ const VariableBase_1 = require("./VariableBase");
|
|
|
7
7
|
* This is declared her for consumers to use
|
|
8
8
|
*/
|
|
9
9
|
class ESLintScopeVariable extends VariableBase_1.VariableBase {
|
|
10
|
+
/**
|
|
11
|
+
* Written to by ESLint.
|
|
12
|
+
* If this key exists, this variable is a global variable added by ESLint.
|
|
13
|
+
* If this is `true`, this variable can be assigned arbitrary values.
|
|
14
|
+
* If this is `false`, this variable is readonly.
|
|
15
|
+
*/
|
|
16
|
+
writeable; // note that this isn't a typo - ESlint uses this spelling here
|
|
17
|
+
/**
|
|
18
|
+
* Written to by ESLint.
|
|
19
|
+
* This property is undefined if there are no globals directive comments.
|
|
20
|
+
* The array of globals directive comments which defined this global variable in the source code file.
|
|
21
|
+
*/
|
|
22
|
+
eslintExplicitGlobal;
|
|
23
|
+
/**
|
|
24
|
+
* Written to by ESLint.
|
|
25
|
+
* The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments.
|
|
26
|
+
*/
|
|
27
|
+
eslintImplicitGlobalSetting;
|
|
28
|
+
/**
|
|
29
|
+
* Written to by ESLint.
|
|
30
|
+
* If this key exists, it is a global variable added by ESLint.
|
|
31
|
+
* If `true`, this global variable was defined by a globals directive comment in the source code file.
|
|
32
|
+
*/
|
|
33
|
+
eslintExplicitGlobalComments;
|
|
10
34
|
}
|
|
11
35
|
exports.ESLintScopeVariable = ESLintScopeVariable;
|
|
12
36
|
//# sourceMappingURL=ESLintScopeVariable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ESLintScopeVariable.js","sourceRoot":"","sources":["../../src/variable/ESLintScopeVariable.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C;;;GAGG;AACH,MAAM,mBAAoB,SAAQ,2BAAY;
|
|
1
|
+
{"version":3,"file":"ESLintScopeVariable.js","sourceRoot":"","sources":["../../src/variable/ESLintScopeVariable.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C;;;GAGG;AACH,MAAM,mBAAoB,SAAQ,2BAAY;IAC5C;;;;;OAKG;IACI,SAAS,CAAW,CAAC,+DAA+D;IAE3F;;;;OAIG;IACI,oBAAoB,CAAW;IAEtC;;;OAGG;IACI,2BAA2B,CAA2B;IAE7D;;;;OAIG;IACI,4BAA4B,CAAsB;CAC1D;AAEQ,kDAAmB"}
|
|
@@ -6,6 +6,14 @@ const ESLintScopeVariable_1 = require("./ESLintScopeVariable");
|
|
|
6
6
|
* An variable implicitly defined by the TS Lib
|
|
7
7
|
*/
|
|
8
8
|
class ImplicitLibVariable extends ESLintScopeVariable_1.ESLintScopeVariable {
|
|
9
|
+
/**
|
|
10
|
+
* `true` if the variable is valid in a type context, false otherwise
|
|
11
|
+
*/
|
|
12
|
+
isTypeVariable;
|
|
13
|
+
/**
|
|
14
|
+
* `true` if the variable is valid in a value context, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
isValueVariable;
|
|
9
17
|
constructor(scope, name, { isTypeVariable, isValueVariable, writeable, eslintImplicitGlobalSetting, }) {
|
|
10
18
|
super(name, scope);
|
|
11
19
|
this.isTypeVariable = isTypeVariable ?? false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImplicitLibVariable.js","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAU5D;;GAEG;AACH,MAAM,mBAAoB,SAAQ,yCAAmB;
|
|
1
|
+
{"version":3,"file":"ImplicitLibVariable.js","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAU5D;;GAEG;AACH,MAAM,mBAAoB,SAAQ,yCAAmB;IACnD;;OAEG;IACa,cAAc,CAAU;IAExC;;OAEG;IACa,eAAe,CAAU;IAEzC,YACE,KAAY,EACZ,IAAY,EACZ,EACE,cAAc,EACd,eAAe,EACf,SAAS,EACT,2BAA2B,GACA;QAE7B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,2BAA2B;YAC9B,2BAA2B,IAAI,UAAU,CAAC;IAC9C,CAAC;CACF;AAEQ,kDAAmB"}
|
|
@@ -4,33 +4,42 @@ exports.VariableBase = void 0;
|
|
|
4
4
|
const ID_1 = require("../ID");
|
|
5
5
|
const generator = (0, ID_1.createIdGenerator)();
|
|
6
6
|
class VariableBase {
|
|
7
|
+
/**
|
|
8
|
+
* A unique ID for this instance - primarily used to help debugging and testing
|
|
9
|
+
*/
|
|
10
|
+
$id = generator();
|
|
11
|
+
/**
|
|
12
|
+
* The array of the definitions of this variable.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
defs = [];
|
|
16
|
+
/**
|
|
17
|
+
* True if the variable is considered used for the purposes of `no-unused-vars`, false otherwise.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
eslintUsed = false;
|
|
21
|
+
/**
|
|
22
|
+
* The array of `Identifier` nodes which define this variable.
|
|
23
|
+
* If this variable is redeclared, this array includes two or more nodes.
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
identifiers = [];
|
|
27
|
+
/**
|
|
28
|
+
* The variable name, as given in the source code.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
name;
|
|
32
|
+
/**
|
|
33
|
+
* List of {@link Reference} of this variable (excluding parameter entries) in its defining scope and all nested scopes.
|
|
34
|
+
* For defining occurrences only see {@link Variable#defs}.
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
references = [];
|
|
38
|
+
/**
|
|
39
|
+
* Reference to the enclosing Scope.
|
|
40
|
+
*/
|
|
41
|
+
scope;
|
|
7
42
|
constructor(name, scope) {
|
|
8
|
-
/**
|
|
9
|
-
* A unique ID for this instance - primarily used to help debugging and testing
|
|
10
|
-
*/
|
|
11
|
-
this.$id = generator();
|
|
12
|
-
/**
|
|
13
|
-
* The array of the definitions of this variable.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
this.defs = [];
|
|
17
|
-
/**
|
|
18
|
-
* True if the variable is considered used for the purposes of `no-unused-vars`, false otherwise.
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
this.eslintUsed = false;
|
|
22
|
-
/**
|
|
23
|
-
* The array of `Identifier` nodes which define this variable.
|
|
24
|
-
* If this variable is redeclared, this array includes two or more nodes.
|
|
25
|
-
* @public
|
|
26
|
-
*/
|
|
27
|
-
this.identifiers = [];
|
|
28
|
-
/**
|
|
29
|
-
* List of {@link Reference} of this variable (excluding parameter entries) in its defining scope and all nested scopes.
|
|
30
|
-
* For defining occurrences only see {@link Variable#defs}.
|
|
31
|
-
* @public
|
|
32
|
-
*/
|
|
33
|
-
this.references = [];
|
|
34
43
|
this.name = name;
|
|
35
44
|
this.scope = scope;
|
|
36
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableBase.js","sourceRoot":"","sources":["../../src/variable/VariableBase.ts"],"names":[],"mappings":";;;AAGA,8BAA0C;AAI1C,MAAM,SAAS,GAAG,IAAA,sBAAiB,GAAE,CAAC;AAEtC,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"VariableBase.js","sourceRoot":"","sources":["../../src/variable/VariableBase.ts"],"names":[],"mappings":";;;AAGA,8BAA0C;AAI1C,MAAM,SAAS,GAAG,IAAA,sBAAiB,GAAE,CAAC;AAEtC,MAAM,YAAY;IAChB;;OAEG;IACa,GAAG,GAAW,SAAS,EAAE,CAAC;IAE1C;;;OAGG;IACa,IAAI,GAAiB,EAAE,CAAC;IACxC;;;OAGG;IACI,UAAU,GAAG,KAAK,CAAC;IAC1B;;;;OAIG;IACa,WAAW,GAA0B,EAAE,CAAC;IACxD;;;OAGG;IACa,IAAI,CAAS;IAC7B;;;;OAIG;IACa,UAAU,GAAgB,EAAE,CAAC;IAC7C;;OAEG;IACa,KAAK,CAAQ;IAE7B,YAAY,IAAY,EAAE,KAAY;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAEQ,oCAAY"}
|
package/dist/variable/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { ESLintScopeVariable } from './ESLintScopeVariable';
|
|
2
|
+
import type { Variable } from './Variable';
|
|
1
3
|
export { ESLintScopeVariable } from './ESLintScopeVariable';
|
|
2
4
|
export { ImplicitLibVariable, ImplicitLibVariableOptions, } from './ImplicitLibVariable';
|
|
3
5
|
export { Variable } from './Variable';
|
|
6
|
+
export type ScopeVariable = Variable | ESLintScopeVariable;
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/variable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/variable/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/variable/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/variable/index.ts"],"names":[],"mappings":";;;AAGA,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA;AAGrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA"}
|