Skip to content
This repository has been archived by the owner on Mar 13, 2023. It is now read-only.

Error when presentation type abbreviation contains only satisfies #1317

Open
contrapunctus-1 opened this issue Oct 24, 2022 · 1 comment
Open

Comments

@contrapunctus-1
Copy link
Contributor

(ql:quickload '(mcclim))
(in-package :cl)
(defpackage :generic-command-test-2
  (:use :clim :clim-lisp))
(in-package :generic-command-test-2)

(defgeneric my-typep-1 (object)
  (:method-combination list))

(defmethod my-typep-1 list (object)
  (equal object "a"))

(defmethod my-typep-1 list (object)
  (equal object 1))

(defun my-typep (object)
  (remove-if-not #'identity (my-typep-1 object)))

(define-presentation-type-abbreviation my-type ()
  '(and t (satisfies my-typep-1)))

(define-application-frame test-frame () ()
  (:panes (app :application
               :display-function (lambda (f p)
                                   (present 1)
                                   (present "a")))
          (int :interactor))
  (:layouts (default (vertically () app int))))

(define-test-frame-command (com-test-command :name t) ((o 'my-type))
  (format *debug-io* "success!~%"))

(find-application-frame 'test-frame)

If the equivalent-type parameter of the ptype abbrev definition was written as '(satisfies my-typep) or even '(and (satisfies my-typep)), invoking the command results in the following error -

SATISFIES is an unknown presentation type
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [ABORT] Return to application command loop.
 1: [ABORT] abort thread (#<THREAD "TEST-FRAME" RUNNING {100450D883}>)

Backtrace:
  0: (CLIM-INTERNALS::PROTOTYPE-OR-ERROR SATISFIES)
  1: ((LABELS CLIM-INTERNALS::GET-HISTORY :IN ACCEPT))
  2: (ACCEPT MY-TYPE :STREAM #<CLIM-INTERNALS::ACCEPTING-VALUES-STREAM {100462A223}> :QUERY-IDENTIFIER O :PROMPT "o")
  3: ((FLET CLIM-INTERNALS::ARG-PARSER :IN CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1) #<CLIM-INTERNALS::ACCEPTING-VALUES-STREAM {100462A223}> MY-TYPE :QUERY-IDENTIFIER O :PROMPT "o")
  4: (COM-TEST-COMMAND%PARSER #<FUNCTION (FLET CLIM-INTERNALS::ARG-PARSER :IN CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1) {100463BA0B}> #<FUNCTION (FLET CLIM-INTERNALS::DEL-PARSER :IN CLIM-INTERNALS::ACCEPT-..
  5: (CLIM-INTERNALS::PARSE-COMMAND COM-TEST-COMMAND #<FUNCTION (FLET CLIM-INTERNALS::ARG-PARSER :IN CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1) {100463BA0B}> #<FUNCTION (FLET CLIM-INTERNALS::DEL-PARSER :IN ..
  6: ((FLET CLIM-INTERNALS::ACCEPTING-BODY :IN CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1) #<CLIM-INTERNALS::ACCEPTING-VALUES-STREAM {100462A223}>)
  7: ((LABELS #:.CONT.44 :IN CLIM-INTERNALS::INVOKE-ACCEPTING-VALUES) #<unused argument>)
  8: ((FLET "CONTINUATION5" :IN CLIM-INTERNALS::INVOKE-FORMATTING-TABLE) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}>)
  9: ((:METHOD INVOKE-WITH-OUTPUT-RECORDING-OPTIONS (OUTPUT-RECORDING-STREAM T T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "CONTINUATION5" :IN CLIM-INTERNALS::INVOKE..
 10: ((FLET "GCONTINUATION6" :IN CLIM-INTERNALS::INVOKE-FORMATTING-TABLE) #<unused argument>)
 11: ((FLET CLIM-INTERNALS::GRAPHICS-OP :IN INVOKE-WITH-DRAWING-OPTIONS) #<unused argument>)
 12: (CLIM-INTERNALS::DO-GRAPHICS-WITH-OPTIONS-INTERNAL #<CLIM-CLX:CLX-RENDER-MEDIUM {1004532AE3}> #<CLIM-CLX:CLX-RENDER-MEDIUM {1004532AE3}> #<FUNCTION (FLET CLIM-INTERNALS::GRAPHICS-OP :IN INVOKE-WITH-DR..
 13: ((:METHOD CLIM-INTERNALS::DO-GRAPHICS-WITH-OPTIONS (MEDIUM T)) #<CLIM-CLX:CLX-RENDER-MEDIUM {1004532AE3}> #<FUNCTION (FLET CLIM-INTERNALS::GRAPHICS-OP :IN INVOKE-WITH-DRAWING-OPTIONS) {7F10DDA70D3B}>)..
 14: ((LABELS #:G6 :IN INVOKE-WITH-DRAWING-OPTIONS) #<CLIM-CLX:CLX-RENDER-MEDIUM {1004532AE3}>)
 15: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-SHEET-MEDIUM-BOUND (T T PERMANENT-MEDIUM-SHEET-OUTPUT-MIXIN)) #<FUNCTION (LABELS #:G6 :IN INVOKE-WITH-DRAWING-OPTIONS) {7F10DDA70DFB}> #<unused argument> #<CLIM-C..
 16: ((:METHOD INVOKE-WITH-DRAWING-OPTIONS (SHEET T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "GCONTINUATION6" :IN CLIM-INTERNALS::INVOKE-FORMATTING-TABLE) {7F10DDA70F..
 17: ((SB-PCL::EMF INVOKE-WITH-DRAWING-OPTIONS) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "GCONTINUATION6" :IN CLIM-INTERNALS::INVO..
 18: ((LAMBDA (STREAM CLIM-INTERNALS::TABLE) :IN CLIM-INTERNALS::INVOKE-FORMATTING-TABLE) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<STANDARD-TABLE-OUTPUT-RECORD X 0.0d0:0.0d0 Y 0.0d0:0..
 19: ((:METHOD INVOKE-WITH-NEW-OUTPUT-RECORD (OUTPUT-RECORDING-STREAM T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LAMBDA (STREAM CLIM-INTERNALS::TABLE) :IN CLIM-INTERNALS..
 20: ((SB-PCL::EMF INVOKE-WITH-NEW-OUTPUT-RECORD) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LAMBDA (STREAM CLIM-INTERNALS::TABLE) :IN CL..
 21: (CLIM-INTERNALS::INVOKE-FORMATTING-TABLE #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LABELS #:.CONT.44 :IN CLIM-INTERNALS::INVOKE-ACCEPTING-VALUES) {7F10DDA7140B}>)
 22: ((FLET "UPDATING-OUTPUT-CONTINUATION43" :IN CLIM-INTERNALS::INVOKE-ACCEPTING-VALUES) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}>)
 23: ((FLET "CONTINUATION6" :IN CLIM-INTERNALS::%INVOKE-UPDATING) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<unused argument>)
 24: ((:METHOD INVOKE-WITH-NEW-OUTPUT-RECORD (OUTPUT-RECORDING-STREAM T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "CONTINUATION6" :IN CLIM-INTERNALS::%INVOKE-UPDATIN..
 25: ((SB-PCL::EMF INVOKE-WITH-NEW-OUTPUT-RECORD) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "CONTINUATION6" :IN CLIM-INTERNALS::%IN..
 26: (CLIM-INTERNALS::%INVOKE-UPDATING #<CLIM-INTERNALS::ACCEPTING-VALUES-RECORD X 0.0d0:0.0d0 Y 0.0d0:0.0d0  1 {100462A283}> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "..
 27: ((FLET "CONTINUATION58" :IN INVOKE-UPDATING-OUTPUT) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<CLIM-INTERNALS::ACCEPTING-VALUES-RECORD X 0.0d0:0.0d0 Y 0.0d0:0.0d0  1 {100462A283}>)
 28: ((:METHOD INVOKE-WITH-NEW-OUTPUT-RECORD (OUTPUT-RECORDING-STREAM T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "CONTINUATION58" :IN INVOKE-UPDATING-OUTPUT) {7F10D..
 29: ((SB-PCL::EMF INVOKE-WITH-NEW-OUTPUT-RECORD) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "CONTINUATION58" :IN INVOKE-UPDATING-OU..
 30: ((:METHOD INVOKE-UPDATING-OUTPUT (CLIM-INTERNALS::UPDATING-OUTPUT-STREAM-MIXIN T T T T T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "UPDATING-OUTPUT-CONTINUATION..
 31: ((SB-PCL::EMF INVOKE-UPDATING-OUTPUT) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET "UPDATING-OUTPUT-CONTINUATION43" :IN CLIM-INTE..
 32: ((LAMBDA (SB-PCL::.ARG0. SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3. SB-PCL::.ARG4. SB-PCL::.ARG5. SB-PCL::.ARG6. SB-INT:&MORE SB-PCL::.MORE-CONTEXT. SB-PCL::.MORE-COUNT.)) #<CLIM-CLX::|CLX-583-CLIM:..
 33: (CLIM-INTERNALS::INVOKE-ACCEPTING-VALUES #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (FLET CLIM-INTERNALS::ACCEPTING-BODY :IN CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1) {100..
 34: (CLIM-INTERNALS::ACCEPT-PARTIAL-COMMAND-1 #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> "You are being prompted for arguments to \"Test Command\"." (COM-TEST-COMMAND CLIM-INTERNALS::%UN..
 35: ((FLET CLIM-INTERNALS::LOOP-ACCEPTING-VALUES :IN COMMAND-LINE-READ-REMAINING-ARGUMENTS-FOR-PARTIAL-COMMAND) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}>)
 36: (COMMAND-LINE-READ-REMAINING-ARGUMENTS-FOR-PARTIAL-COMMAND #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}> #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> (COM-TEST-COMMAND CLIM-INTERNALS::%UNSUPPLIED..
 37: (CLIM-INTERNALS::ENSURE-COMPLETE-COMMAND (COM-TEST-COMMAND CLIM-INTERNALS::%UNSUPPLIED-ARGUMENT-MARKER%) #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}> #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}>..
 38: ((FLET CLIM-INTERNALS::HANDLE-COMMAND :IN CLIM-INTERNALS::%ACCEPT) (COM-TEST-COMMAND))
 39: ((:METHOD CLIM-INTERNALS::%ACCEPT (CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| T T TEXTUAL-VIEW)) #<CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| {1002E2E783}> (COMMAND :COMMAND-TABLE #<..
 40: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Libraries/Drei/input-editor.lisp"))
 41: ((:METHOD CLIM-INTERNALS::%ACCEPT :AROUND (CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| T DREI:DREI-INPUT-EDITING-MIXIN T)) #<CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| {1002E2E783}> (..
 42: ((LAMBDA (SB-PCL::.ARG0. SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3. SB-INT:&MORE SB-PCL::.MORE-CONTEXT. SB-PCL::.MORE-COUNT.)) #<CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| {1002E2E783}> (CO..
 43: ((FLET "INPUT-CONT22" :IN ACCEPT-1))
 44: (CLIM-INTERNALS::INVOKE-HANDLE-EMPTY-INPUT #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> #<FUNCTION (FLET "INPUT-CONT22" :IN ACCEPT-1) {7F10DDA7360B}> #<FUNCTION (FLET "HANDLER-CONT23" :IN ACCEPT-1) {..
 45: ((LAMBDA (STREAM) :IN ACCEPT-1) #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}>)
 46: (CLIM-INTERNALS::INPUT-EDITING-RESCAN-LOOP #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> #<FUNCTION (LAMBDA (STREAM) :IN ACCEPT-1) {10045ABD0B}>)
 47: ((LAMBDA (CLIM-INTERNALS::EDITING-STREAM) :IN CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING) #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}>)
 48: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING (T T T T T)) #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> #<FUNCTION (LAMBDA (CLIM-INTERNALS::EDITING-STREAM) :IN CLIM-INTERNALS::INVOKE-WITH-INPUT..
 49: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/input-editing.lisp"))
 50: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING (INPUT-EDITING-STREAM T T T T)) #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> #<FUNCTION (LAMBDA (CLIM-INTERNALS::EDITING-STREAM) :IN CLIM-INTERNALS..
 51: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/input-editing.lisp"))
 52: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING :AROUND (T T T T T)) #<STANDARD-INPUT-EDITING-STREAM {10045ABE83}> #<FUNCTION (LAMBDA (CLIM-INTERNALS::EDITING-STREAM) :IN CLIM-INTERNALS::INVOKE-WI..
 53: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING (CLIM-STREAM-PANE T T T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LAMBDA (STREAM) :IN ACCEPT-1) {10045ABD0B}> #<F..
 54: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/input-editing.lisp"))
 55: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING :AROUND (T T T T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LAMBDA (STREAM) :IN ACCEPT-1) {10045ABD0B}> #<FUNCTION..
 56: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/input-editing.lisp"))
 57: ((:METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING :AROUND (EXTENDED-OUTPUT-STREAM T T T T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> #<FUNCTION (LAMBDA (STREAM) :IN ACCEPT-1) {10..
 58: (ACCEPT-1 #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> (COMMAND :COMMAND-TABLE #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}>) :VIEW NIL :DEFAULT (CLIM-INTERNALS::COM-NULL-COMMAND) ..
 59: ((:METHOD STREAM-ACCEPT (STANDARD-EXTENDED-INPUT-STREAM T)) #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> (COMMAND :COMMAND-TABLE #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}>) :DEF..
 60: ((SB-PCL::EMF STREAM-ACCEPT) #<unused argument> #<unused argument> #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> (COMMAND :COMMAND-TABLE #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}..
 61: ((LABELS CLIM-INTERNALS::DO-ACCEPT :IN ACCEPT) (:DEFAULT-TYPE CLIM-INTERNALS::NULL-COMMAND :PROMPT NIL :DEFAULT (CLIM-INTERNALS::COM-NULL-COMMAND) ...))
 62: (ACCEPT (COMMAND :COMMAND-TABLE #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}>) :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> :PROMPT NIL :DEFAULT (CLIM-INTERNALS::COM-NULL-C..
 63: (READ-COMMAND #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}> :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER N..
 64: (READ-COMMAND-USING-KEYSTROKES #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}> NIL :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PAR..
 65: (READ-COMMAND #<STANDARD-COMMAND-TABLE TEST-FRAME {1002526263}> :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER N..
 66: ((:METHOD READ-FRAME-COMMAND (APPLICATION-FRAME)) #<TEST-FRAME {100450A803}> :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}>) [fast-method]
 67: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/frames/frames.lisp"))
 68: ((:METHOD READ-FRAME-COMMAND :AROUND (APPLICATION-FRAME)) #<TEST-FRAME {100450A803}> :STREAM #<CLIM-CLX::|CLX-583-CLIM:INTERACTOR-PANE| INT {1004532563}>) [fast-method]
 69: ((FLET CLIM-INTERNALS::EXECUTE-COMMAND :IN DEFAULT-FRAME-TOP-LEVEL))
 70: ((:METHOD DEFAULT-FRAME-TOP-LEVEL (APPLICATION-FRAME)) #<TEST-FRAME {100450A803}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER NIL :PROMPT "Command: ") [fast-method]
 71: ((SB-PCL::EMF DEFAULT-FRAME-TOP-LEVEL) #<unused argument> #<unused argument> #<TEST-FRAME {100450A803}>)
 72: ((LAMBDA (#:FRAME-ARG1247)) #<TEST-FRAME {100450A803}>)
 73: ((:METHOD RUN-FRAME-TOP-LEVEL (APPLICATION-FRAME)) #<TEST-FRAME {100450A803}>) [fast-method]
 74: ((FLET CALL-NEXT-METHOD :IN "/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/frames/frames.lisp"))
 75: ((:METHOD RUN-FRAME-TOP-LEVEL :AROUND (APPLICATION-FRAME)) #<TEST-FRAME {100450A803}>) [fast-method]
 76: ((LAMBDA NIL :IN FIND-APPLICATION-FRAME))
 77: ((LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
 78: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
 79: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-THREAD::RUN))
 80: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
 81: ((FLET "WITHOUT-INTERRUPTS-BODY-4" :IN SB-THREAD::RUN))
 82: (SB-THREAD::RUN)
 83: ("foreign function: call_into_lisp_")
 84: ("foreign function: funcall1")
@contrapunctus-1 contrapunctus-1 changed the title Presentation type abbreviation cannot contain satisfies alone Error when presentation type abbreviation contains only satisfies Oct 24, 2022
@dkochmanski
Copy link
Member

dkochmanski commented Oct 24, 2022

(defpackage :generic-command-test-2
  (:use :clim :clim-lisp))
(in-package :generic-command-test-2)

(defgeneric my-typep-1 (object)
  (:method-combination or))

(defmethod my-typep-1 or ((object t))
  nil)

(defmethod my-typep-1 or ((object string))
  (equal object "a"))

(defmethod my-typep-1 or ((object integer))
  (equal object 1))

(define-presentation-type-abbreviation my-type ()
  '(satisfies my-typep-1)) ;; <--

(define-application-frame test-frame () ()
  (:panes (app :application
               :display-function (lambda (f p)
                                   (present 1)
                                   (terpri)
                                   (present 2)
                                   (terpri)
                                   (present "a")))
          (int :interactor))
  (:layouts (default (vertically () app int))))

(define-test-frame-command (com-test-command :name t)
    ((o 'my-type :gesture :select))
  (format *debug-io* "success!~%"))

(find-application-frame 'test-frame)

I can confirm that putting satisfies as the exact type results in an error. This is probably becase we first test for the class and it needs a proper adjustement in presentation-subtypep.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants