Error on magit-forge forge-pull: Invalid slot name: #<magit--git-variable....
- Dominant language
- Emacs Lisp
- Stars
- 22.7k
- Forks
- 3.1k
- Avg merge
- 10h 46m
- Merged PRs (30d)
- 4
Description
### I confirm that...
- [X] I have searched the [issue tracker](https://github.com/doomemacs/doomemacs/issues), [documentation](https://docs.doomemacs.org), [FAQ](https://docs.doomemacs.org/-/faq), [Discourse](https://discourse.doomemacs.org), and [Google](https://google.com), in case this issue has already been reported/resolved.
- [X] I have read "[How to Debug Issues](https://doomemacs.org/d/how2debug)", and will use it to provide as much information about this issue as possible.
- [X] The issue can be reproduced on the **latest** available commit of Doom.
- [X] The issue can be reproduced on a stable release of Emacs, such as 27 or 28. *(Doom does not support development builds like 29+ or any version ending in .50 or .9x)*
### Expected behavior
When issuing the `forge-pull` command, this should proceed without errors. Currently it triggers errors.
### Current behavior
When issuing the `forge-pull` command for **first time**, I get the following error:
```
Invalid slot name: "#", :default
```
with the following backtrace:
```lisp
Debugger entered--Lisp error: (invalid-slot-name "#)(# :default oset (closure (t) nil (number-to-string ghub-graphql-items-per-request)))
apply(#f(compiled-function (object slot-name operation &optional new-value) #) # (:default oset (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
slot-missing(# :default oset (closure (t) nil (number-to-string ghub-graphql-items-per-request)))
#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #)(# (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
apply(#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #) # (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
shared-initialize(# (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
#f(compiled-function (this &optional args) "Construct the new object THIS based on ARGS.\nARGS is a property list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from ARGS." #)(# (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
apply(#f(compiled-function (this &optional args) "Construct the new object THIS based on ARGS.\nARGS is a property list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from ARGS." #) # (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
initialize-instance(# (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #)(magit--git-variable :command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request)))
apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #) magit--git-variable (:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request))))
make-instance(magit--git-variable :command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request)))
magit--git-variable(:command forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader read-string :default (closure (t) nil (number-to-string ghub-graphql-items-per-request)))
(put 'forge-forge\.graphqlItemLimit 'transient--suffix (magit--git-variable :command 'forge-forge\.graphqlItemLimit :variable "forge.graphqlItemLimit" :reader #'read-string :default #'(lambda nil (number-to-string ghub-graphql-items-per-request))))
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
require(forge-commands)
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
require(forge)
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
command-execute(forge-pull record)
execute-extended-command(nil "forge-pull" #("for" 0 3 (ws-butler-chg chg)))
#(execute-extended-command nil "forge-pull" #("for" 0 3 (ws-butler-chg chg)))
apply(# (execute-extended-command nil "forge-pull" #("for" 0 3 (ws-butler-chg chg))))
funcall-interactively(execute-extended-command nil "forge-pull" #("for" 0 3 (ws-butler-chg chg)))
#(execute-extended-command nil nil)
apply(# (execute-extended-command nil nil))
explain-pause--wrap-call-interactively(# execute-extended-command nil nil)
apply(explain-pause--wrap-call-interactively # (execute-extended-command nil nil))
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
```
**subsequent calls** produce:
```
cl-generic-ensure-function: forge--branch-pullreq is already defined as something else than a generic function
```
with the following backtrace:
```lisp
Debugger entered--Lisp error: (error "forge--branch-pullreq is already defined as someth...")
error("%s is already defined as something else than a gen..." forge--branch-pullreq)
cl-generic-ensure-function(forge--branch-pullreq)
cl-generic-define-method(forge--branch-pullreq nil ((pullreq forge-pullreq)) nil (closure (t) (pullreq) (progn (forge--branch-pullreq (forge-get-repository pullreq) pullreq))))
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
require(forge-commands)
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
require(forge)
load-with-code-conversion("/home/rafael/.emacs.d/.local/straight/build-28.2/f..." "/home/rafael/.emacs.d/.local/straight/build-28.2/f..." nil t)
command-execute(forge-pull record)
execute-extended-command(nil "forge-pull" nil)
#(execute-extended-command nil "forge-pull" nil)
apply(# (execute-extended-command nil "forge-pull" nil))
funcall-interactively(execute-extended-command nil "forge-pull" nil)
#(execute-extended-command nil nil)
apply(# (execute-extended-command nil nil))
explain-pause--wrap-call-interactively(# execute-extended-command nil nil)
apply(explain-pause--wrap-call-interactively # (execute-extended-command nil nil))
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
```
### Steps to reproduce
1. Open emacs
2. Open a project (projectile) based on git
3. Go to magit with SPC g g
4. M-x forge-pull --> produces first error
5. again M-x forge-pull --> produces second error
### System Information
https://pastebin.com/U4q6Buqe
Contributor guide
Assessment
This issue has not been assessed yet.