Comments (1)
This kind of question are more fitting the community channels you can find here: https://dart.dev/community
The reason for the missing promotion is that your code could be imported in another program where Foo
gets extended in another class which could provide another implementation of the x
value.
See, by making x
final, it just means that we have no setter of the value. But we can override x
with our own getter which does not return the same value each time we ask for x
:
class FooBar extends Foo {
int? get x => Random().nextBool() ? null : 5;
}
Now, your null-check would no longer be valid. In recent version of Dart, the check have been made more advanced so if you rename x
to _x
to make it private, it would then get promoted. The reason here is that since it is private, it is no longer being able to get overridden by another class which are not part of your own package. So we no longer have this "surprise" factor where a user of your package gets a null-check error for something they could not know about.
from sdk.
Related Issues (20)
- analysis_options.yaml "include:" not working for nested folders unless workspace root has a package config for the referenced package HOT 25
- Some javascript error are caught with an opaque JavascriptError type when using wasm HOT 3
- Network paths don't work after 3.4.0 HOT 4
- Intersection type soundness issue HOT 1
- language/nnbd/late/covariant_instance_field_test fails with inlining disabled HOT 4
- `Uint8List.fromList([...])` is ~10x slower than `Uint8List(length)..[0] = #..[1] = #` HOT 8
- [native_assets] Spaces in paths HOT 2
- Unreliable network connection timeout parameters HOT 4
- A simple code that break dart fix HOT 3
- Code completion doesn't suggest enum values when imported aliased HOT 1
- Allow DTD clients to know when a service/method is available/unavailable HOT 6
- [ffi] Varargs should give an error on uint8, int8, uint16, int16 and float HOT 2
- Failures on Expose CommentToken as analyzer public API...[analyzer] Prioritize errors in analysis_options/pubspec errors when running "dart analyze" HOT 1
- ffi/callback_unwind_error_test was flaky, turned Crash on vm-aot-linux-release-arm-qemu HOT 1
- Failures on Expose CommentToken as analyzer public API...[analyzer] HOT 3
- [dart2js] dart2js should do better inlining of `@Native` method stubs
- Docs on how to access and use the test status database HOT 6
- Isolate-local native callables create spurious exception in debugger when returning null HOT 3
- [breaking change] Change the context for the operand of `throw` to `Object`. HOT 10
- Create a method to know if a type is a Built-in type HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdk.