Skip to content
This repository has been archived by the owner on Jan 22, 2022. It is now read-only.

Full inheritance with generics handling #109

Open
1 of 7 tasks
MerlinVR opened this issue Aug 13, 2021 · 2 comments
Open
1 of 7 tasks

Full inheritance with generics handling #109

MerlinVR opened this issue Aug 13, 2021 · 2 comments
Assignees
Milestone

Comments

@MerlinVR
Copy link
Owner

MerlinVR commented Aug 13, 2021

Handling for virtual classes and interfaces on UdonSharpBehaviours and imported user classes. Needs to handle generic type uses that implement interfaces as well.

Will be treated as an AOT process where all potentially referenced virtual members of imported user types get emitted into the referencing UdonSharpBehaviour's program, then have vtables generated for that program's context.

  • UdonSharpBehaviour virtual inheritance
  • UdonSharpBehaviour interfaces
  • User+UdonSharpBehaviour type checking via is/as
  • Imported user type virtual inheritance
  • Imported user type interfaces
  • Generics handling
  • Handling for mixed interface usage between imported user types and UdonSharpBehaviours
@MerlinVR MerlinVR created this issue from a note in UdonSharp 1.0 (In progress) Aug 13, 2021
@MerlinVR MerlinVR self-assigned this Aug 13, 2021
@MerlinVR MerlinVR added this to the UdonSharp 1.0 milestone Aug 13, 2021
@MerlinVR
Copy link
Owner Author

Currently working on just UdonSharpBehaviour virtual inheritance since it needs to be handled when allocating values and addresses for methods in order to allow cheap virtual method calls across behaviours.

@MerlinVR
Copy link
Owner Author

Update: Virtual inheritance on UdonSharpBehaviours functional. Currently includes inheriting base class members, implementing virtual methods, base calls, calls to virtual method implementations from base class methods.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
UdonSharp 1.0
In progress
Development

No branches or pull requests

1 participant