Fix internal-external name mapping for TR classes

Please merge to v6.0.1
This commit is contained in:
Asumu Takikawa 2014-04-08 15:48:29 -04:00
parent 5eb1110040
commit a11144c8f8
2 changed files with 26 additions and 18 deletions

View File

@ -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

View File

@ -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)