1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
;; -*-theme-d-*-
;; Copyright (C) 2024 Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.
;; Expected results: translation and running OK
(define-proper-program (tests test877)
(import (standard-library core)
(standard-library console-io))
(define-foreign-goops-class <c>
(target-name <c>)
(slots
(i <integer> public public has-init-value pure-ref #:i)
(str <string> public public has-init-value pure-ref #:str)))
(define-simple-method mymethod
(((i1 <integer>)) <none> nonpure)
(console-display-line i1))
(define-simple-method mymethod2
(((c <c>)) <integer> pure)
(+ (slot-ref c 'i) 1))
(define-main-proc (() <none> nonpure)
(let ((c1 (make <c> #:i 1 #:str "Hello")))
(mymethod (slot-ref c1 'i))
(console-display-line (mymethod2 c1))
(console-display-line (slot-ref c1 'str))
(slot-set! c1 'str "def")
(console-display-line (slot-ref c1 'str)))))
|