Coder Social home page Coder Social logo

Comments (3)

eernstg avatar eernstg commented on July 19, 2024

I think that it is reasonable to say that it is already covered. The inclusion of otherwise-not-reflectable superclasses is implied by typeRelationsCapability, because that capability subsumes the superClassCapability (which never existed, but it is implicitly present on p.7 in Fig.1 in the capability design document, and is then later unified with others into typeRelationsCapability).

Granted, it's not the same thing to promise that superclass can be used on a ClassMirror, and promising that the set of reflectable classes will be upwards closed (i.e., that all direct and indirect superclasses of reflectable classes will also be considered reflectable). However, it has essentially a zero cost to support the use of the superclass method among class mirrors for a given set of reflectable classes, whereas the upward-closure may have a substantial cost (because it can make many additional classes reflectable, and each of them has many features).

Based on this, I'll go for a model where upward-closure of the set of reflectable classes is part of the semantics of typeRelations. If needed, we can still split capabilities into more fine-grained ones, and reinterpret the more coarse-grained ones as 'grouping tokens' (p10 in the design document).

I'm currently implementing this. Note that many other parts of typeRelations are still not implemented.

from reflectable.dart.

jakemac53 avatar jakemac53 commented on July 19, 2024

ok, I filed a separate bug about the current error that is thrown and linked it here

from reflectable.dart.

eernstg avatar eernstg commented on July 19, 2024

FYI: Now sending a CL to review that includes code for upwards-closing the set of reflectable classes in case there is a typeRelationsCapability on the given reflector.

from reflectable.dart.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.