Skip to content

⬅️ Back to Table of Contents

📄 WithScope.ts

📊 Analysis Summary

Metric Count
🔧 Functions 1
🧱 Classes 1
📦 Imports 6

📚 Table of Contents

🛠️ File Location:

📂 packages/scope-manager/src/scope/WithScope.ts

📦 Imports

Name Source
TSESTree @typescript-eslint/types
ScopeManager ../ScopeManager
Scope ./Scope
assert ../assert
ScopeBase ./ScopeBase
ScopeType ./ScopeType

Functions

WithScope.close(scopeManager: ScopeManager): Scope | null

Code
public override close(scopeManager: ScopeManager): Scope | null {
    if (this.shouldStaticallyClose()) {
      return super.close(scopeManager);
    }
    assert(this.leftToResolve);
    this.leftToResolve.forEach(ref => this.delegateToUpperScope(ref));
    this.leftToResolve = null;
    return this.upper;
  }
  • Parameters:
  • scopeManager: ScopeManager
  • Return Type: Scope | null
  • Calls:
  • this.shouldStaticallyClose
  • super.close
  • assert (from ../assert)
  • this.leftToResolve.forEach
  • this.delegateToUpperScope

Classes

WithScope

Class Code
export class WithScope extends ScopeBase<
  ScopeType.with,
  TSESTree.WithStatement,
  Scope
> {
  constructor(
    scopeManager: ScopeManager,
    upperScope: WithScope['upper'],
    block: WithScope['block'],
  ) {
    super(scopeManager, ScopeType.with, upperScope, block, false);
  }

  public override close(scopeManager: ScopeManager): Scope | null {
    if (this.shouldStaticallyClose()) {
      return super.close(scopeManager);
    }
    assert(this.leftToResolve);
    this.leftToResolve.forEach(ref => this.delegateToUpperScope(ref));
    this.leftToResolve = null;
    return this.upper;
  }
}

Methods

close(scopeManager: ScopeManager): Scope | null
Code
public override close(scopeManager: ScopeManager): Scope | null {
    if (this.shouldStaticallyClose()) {
      return super.close(scopeManager);
    }
    assert(this.leftToResolve);
    this.leftToResolve.forEach(ref => this.delegateToUpperScope(ref));
    this.leftToResolve = null;
    return this.upper;
  }