fix problem with compiler's cross-module shape tracking
This commit is contained in:
parent
8fab527ce3
commit
195cbe832c
|
@ -896,6 +896,20 @@
|
|||
(parameterize ([current-namespace (module->namespace ''n)])
|
||||
(eval '(procedure? ptr-set!)))))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; check link checking and a constructor with auto fields:
|
||||
|
||||
(module a-with-auto-field racket/base
|
||||
(provide make-region)
|
||||
(define-values (struct:region make-region region? region-get region-set!)
|
||||
(make-struct-type 'region #f 6 6 #f)))
|
||||
|
||||
(module use-a-with-auto-field racket/base
|
||||
(require 'a-with-auto-field)
|
||||
(void (make-region 1 2 3 4 5 6)))
|
||||
|
||||
(require 'use-a-with-auto-field)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -755,10 +755,10 @@ Scheme_Object *scheme_is_simple_make_struct_type(Scheme_Object *e, int vals, int
|
|||
int super_count = (super_count_plus_one
|
||||
? (super_count_plus_one - 1)
|
||||
: 0);
|
||||
_stinfo->field_count = SCHEME_INT_VAL(app->args[3]) + super_count;
|
||||
_stinfo->init_field_count = (SCHEME_INT_VAL(app->args[3])
|
||||
+ SCHEME_INT_VAL(app->args[4])
|
||||
+ super_count);
|
||||
_stinfo->init_field_count = SCHEME_INT_VAL(app->args[3]) + super_count;
|
||||
_stinfo->field_count = (SCHEME_INT_VAL(app->args[3])
|
||||
+ SCHEME_INT_VAL(app->args[4])
|
||||
+ super_count);
|
||||
_stinfo->uses_super = (super_count_plus_one ? 1 : 0);
|
||||
_stinfo->normal_ops = 1;
|
||||
_stinfo->indexed_ops = 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user