DRY-236: Wrong get-canonical-type-name for bytecode-compiled inner classes
Steps to reproduce:
- unzip attached zip file
- correct paths at the top of the Makefile
- run makeExpected output:
TypeName(TypeName(PackageName([Id(“p”)]), Id(“T1”)), Id(“T2”))Actual output:
TypeName(PackageName([Id(“p”)]),Id(“T2”)) (i.e. class T1 is left out)The bug occurs only when T1 is loaded from bytecode form, if the class is being parsed by Dryad from source, then the output is correct.
Submitted on 29 March 2006 at 18:14
Issue Log
DRY-236, justme84:
Looks like this change in dryad/model/classpath.str fixed it:
private-classpath-get-or-add-member-type(|name, declaring-class) =
<get-declared-member-type(|name)> declaring-class
<+ new-bytecode-class(|name) => class
; <add-declared-member-type(|class)> declaring-class
; <set-declaring-class(|declaring-class)> class // ADD THIS LINE
; !class
DRY-236, martin:
Great, thanks for the fix :)
Log in to post comments