Clojure

Refactor method resolution code out of Compiler and into Reflector

Details

  • Type: Enhancement Enhancement
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None

Description

Issues:

  1. Code for obtaining method/constructor instances is duplicated across the Compiler
  2. Code for resolving a preferred overloaded method lives in the Compiler

By consolidating the duplicated code, moving the reflection-related parts into Reflector, and providing a straightforward API, it should be easier to read and understand the method resolution process. Further, improvements to (e.g., CLJ-445) the mechanism for reflecting on class members can largely be isolated from the Compiler. And the few points of coordination (e.g., Compiler emitting same arg and return types as Reflector does when invoking) can be clearly identified and documented.

Activity

Alexander Taggart made changes -
Field Original Value New Value
Description Issues:

# Code for obtaining method/constructor instances is duplicated across the Compiler
# Code for resolving a preferred overloaded method lives in the Compiler


By consolidating the duplicated code, moving the reflection-related parts into Reflector, and providing a straightforward API, it should be easier to read and understand the method resolution process. Further, improvements to (e.g., CLJ-445) the mechanism for reflecting on class members can largely be isolated from the Compiler. And the few points of coordination (e.g., Compiler emitting same arg and return types tas Reflector does when invoking) can be clearly identified and documented.
Issues:

# Code for obtaining method/constructor instances is duplicated across the Compiler
# Code for resolving a preferred overloaded method lives in the Compiler


By consolidating the duplicated code, moving the reflection-related parts into Reflector, and providing a straightforward API, it should be easier to read and understand the method resolution process. Further, improvements to (e.g., CLJ-445) the mechanism for reflecting on class members can largely be isolated from the Compiler. And the few points of coordination (e.g., Compiler emitting same arg and return types as Reflector does when invoking) can be clearly identified and documented.
Alexander Taggart made changes -
Assignee Alexander Taggart [ ataggart ]
Waiting On stu
Stuart Halloway made changes -
Waiting On stu
Andy Fingerhut made changes -
Attachment clj-792-reorg-reflector-patch2.txt [ 10931 ]
Alex Miller made changes -
Issue Type Task [ 3 ] Enhancement [ 4 ]

People

Vote (0)
Watch (3)

Dates

  • Created:
    Updated: