diff --git a/racket/src/cs/schemified/schemify.scm b/racket/src/cs/schemified/schemify.scm index 0f663e5ca5..2bbac558c3 100644 --- a/racket/src/cs/schemified/schemify.scm +++ b/racket/src/cs/schemified/schemify.scm @@ -16028,11 +16028,13 @@ (call-with-values (lambda () (let ((temp26_0 - (list - 'define-values + (propagate-inline-hint + v5_0 (list - id_0) - rhs_2))) + 'define-values + (list + id_0) + rhs_2)))) (find-definitions.1 optimize?2_0 hash2610 @@ -16069,6 +16071,11 @@ (loop_0 rhs_0))) (args (raise-binding-result-arity-error 2 args)))) (values knowns7_0 #f))))))))))) +(define propagate-inline-hint + (lambda (defn_0 new-defn_0) + (if (wrap-property defn_0 'compiler-hint:cross-module-inline) + (wrap-property-set new-defn_0 'compiler-hint:cross-module-inline #t) + new-defn_0))) (define struct-convert (lambda (form_0 prim-knowns_0 diff --git a/racket/src/schemify/find-definition.rkt b/racket/src/schemify/find-definition.rkt index 15d774cfa2..b18cf821bb 100644 --- a/racket/src/schemify/find-definition.rkt +++ b/racket/src/schemify/find-definition.rkt @@ -129,7 +129,7 @@ (for/fold ([knowns knowns]) ([id (in-list ids)] [rhs (in-list rhss)]) (define-values (new-knowns info) - (find-definitions `(define-values (,id) ,rhs) + (find-definitions (propagate-inline-hint v `(define-values (,id) ,rhs)) prim-knowns knowns imports mutated simples unsafe-mode? target #:optimize? optimize?)) new-knowns) @@ -137,3 +137,10 @@ [else (values knowns #f)])] [`,_ (values knowns #f)]))] [`,_ (values knowns #f)])) + +;; ---------------------------------------- + +(define (propagate-inline-hint defn new-defn) + (if (wrap-property defn 'compiler-hint:cross-module-inline) + (wrap-property-set new-defn 'compiler-hint:cross-module-inline #t) + new-defn))