docs: public void visitClassExpression(ClassExpression expression) {
          ClassNode type = expression.getType();
          MethodVisitor mv = controller.getMethodVisitor();
          if (BytecodeHelper.isClassLiteralPossible(type) || BytecodeHelper.isSameCompilationUnit(controller.getClassNode(), type)) {
              if (controller.getClassNode().isInterface()) {
                  InterfaceHelperClassNode interfaceClassLoadingClass = controller.getInterfaceClassLoadingClass();
                  if (BytecodeHelper.isClassLiteralPossible(interfaceClassLoadingClass)) {
                      BytecodeHelper.visitClassLiteral(mv, interfaceClassLoadingClass);
                      controller.getOperandStack().push(ClassHelper.CLASS_Type);
                      return;
                  }
              } else {
                  BytecodeHelper.visitClassLiteral(mv, type);
                  controller.getOperandStack().push(ClassHelper.CLASS_Type);
                  return;
              }
          }
          String staticFieldName = getStaticFieldName(type);
          referencedClasses.put(staticFieldName, type);
  
          String internalClassName = controller.getInternalClassName();
          if (controller.getClassNode().isInterface()) {
              internalClassName = BytecodeHelper.getClassInternalName(controller.getInterfaceClassLoadingClass());
              mv.visitFieldInsn(GETSTATIC, internalClassName, staticFieldName, "Ljava/lang/Class;");
          } else {
              mv.visitMethodInsn(INVOKESTATIC, internalClassName, "$get$" + staticFieldName, "()Ljava/lang/Class;", false);
          }
          controller.getOperandStack().push(ClassHelper.CLASS_Type);
      }