Giter Club home page Giter Club logo

Comments (10)

leonsenft avatar leonsenft commented on September 13, 2024 1

Curious, does throw null become a static error?

It already is:

throw null;

produces:

The type 'Null' of the thrown expression must be assignable to 'Object'.

from sdk.

dart-github-bot avatar dart-github-bot commented on September 13, 2024

Summary: This change updates the type inference context for throw operands from the unknown type (_) to Object. This aligns the context with the compiler's requirement that throw operands be assignable to Object, improving consistency in type inference.

from sdk.

itsjustkevin avatar itsjustkevin commented on September 13, 2024

@vsmenon @leonsenft @Hixie for breaking change review.

from sdk.

leonsenft avatar leonsenft commented on September 13, 2024

LGTM

from sdk.

vsmenon avatar vsmenon commented on September 13, 2024

Curious, does throw null become a static error?

from sdk.

vsmenon avatar vsmenon commented on September 13, 2024

Interesting. :-)

Is that Object not already coming from the context?

Anyway, lgtm on the change.

from sdk.

stereotype441 avatar stereotype441 commented on September 13, 2024

Yeah, when we implemented null safety we added the requirement that anything being thrown must be assignable to Object (i.e. non-nullable). It would have made sense to change the context to Object at the same time, but we didn't think to do so. (Usually the context matches what type the expression has to be in order to avoid a compile-time error, but there are exceptions, so the implementation has to keep contexts and static error checking separate. As a result, if we don't think to update the context when we add an error condition, it doesn't happen automatically.)

from sdk.

stereotype441 avatar stereotype441 commented on September 13, 2024

@Hixie ping

from sdk.

itsjustkevin avatar itsjustkevin commented on September 13, 2024

Marking this breaking change as approved. @Hixie if you object, please speak up.

from sdk.

Hixie avatar Hixie commented on September 13, 2024

Sorry for missing this. This seems like a good change.

from sdk.

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.