diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/check-class-unit.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/check-class-unit.rkt index 1e23e63835..90af63bbba 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/check-class-unit.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/check-class-unit.rkt @@ -292,25 +292,25 @@ (syntax->datum #'cls.augment-externals) (syntax->datum #'cls.pubment-externals)) 'all-internal - (set-union (syntax->datum #'cls.init-internals) - (syntax->datum #'cls.init-field-internals) - (syntax->datum #'cls.field-internals) - (syntax->datum #'cls.public-internals) - (syntax->datum #'cls.override-internals) - (syntax->datum #'cls.inherit-internals) - (syntax->datum #'cls.inherit-field-internals) - (syntax->datum #'cls.pubment-internals) - (syntax->datum #'cls.augment-internals)) + (append (syntax->datum #'cls.init-internals) + (syntax->datum #'cls.init-field-internals) + (syntax->datum #'cls.field-internals) + (syntax->datum #'cls.public-internals) + (syntax->datum #'cls.override-internals) + (syntax->datum #'cls.inherit-internals) + (syntax->datum #'cls.inherit-field-internals) + (syntax->datum #'cls.pubment-internals) + (syntax->datum #'cls.augment-internals)) 'all-external - (set-union (syntax->datum #'cls.init-externals) - (syntax->datum #'cls.init-field-externals) - (syntax->datum #'cls.field-externals) - (syntax->datum #'cls.public-externals) - (syntax->datum #'cls.override-externals) - (syntax->datum #'cls.inherit-externals) - (syntax->datum #'cls.inherit-field-externals) - (syntax->datum #'cls.pubment-externals) - (syntax->datum #'cls.augment-externals)))) + (append (syntax->datum #'cls.init-externals) + (syntax->datum #'cls.init-field-externals) + (syntax->datum #'cls.field-externals) + (syntax->datum #'cls.public-externals) + (syntax->datum #'cls.override-externals) + (syntax->datum #'cls.inherit-externals) + (syntax->datum #'cls.inherit-field-externals) + (syntax->datum #'cls.pubment-externals) + (syntax->datum #'cls.augment-externals)))) (with-timing (do-timestamp (format "methods ~a" (dict-ref parse-info 'method-names))) (extend-tvars/new type-parameters fresh-parameters diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/class-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/class-tests.rkt index 9bc680785a..6a511d4ff9 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/class-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/class-tests.rkt @@ -788,6 +788,14 @@ (init ([i j])))) (new c% [i 5])) #:ret (ret (-object #:init ([j -Integer #f])))] + ;; test that different internal names can map to the same external name + ;; and that the internal-external name mapping is set correctly. + [tc-e (class object% + (super-new) + (: x* String) + (init [(x* x)]) + (field [x "x"])) + (-class #:init ([x -String #f]) #:field ([x Univ]))] ;; test init default values [tc-e (let () (class object% (super-new)