@Override
    public void printScopeStructure(@NotNull Printer p) {
      p.println(getClass().getSimpleName(), " {");
      p.pushIndent();

      p.println("thisDescriptor = ", PackageViewDescriptorImpl.this);

      p.popIndent();
      p.println("}");
    }
  @Override
  public void printScopeStructure(@NotNull Printer p) {
    p.println(getClass().getSimpleName(), ": ", debugName, " {");
    p.pushIndent();

    for (JetScope scope : scopeChain) {
      scope.printScopeStructure(p);
    }

    p.popIndent();
    p.println("}");
  }
  @TestOnly
  @Override
  public void printScopeStructure(@NotNull Printer p) {
    p.println(getClass().getSimpleName(), " {");
    p.pushIndent();

    p.println("substitutor = ");
    p.pushIndent();
    p.println(substitutor);
    p.popIndent();

    p.print("workerScope = ");
    workerScope.printScopeStructure(p.withholdIndentOnce());

    p.popIndent();
    p.println("}");
  }
 @Override
 public void printScopeStructure(@NotNull Printer p) {
   p.println(getClass().getSimpleName(), ": ", debugMessage);
 }