Skip to content

Instantly share code, notes, and snippets.

@Diaga
Created November 18, 2022 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Diaga/563c6f76777d8c4ba215bb040f6eb0f1 to your computer and use it in GitHub Desktop.
Save Diaga/563c6f76777d8c4ba215bb040f6eb0f1 to your computer and use it in GitHub Desktop.
dep extension
void main() {
final w = ConsumerWidget();
print(w.controller);
}
class ConsumerWidget {
TableController get controller {
try {
print(controller.check);
} finally {
print("ok");
}
return controller.dep(TableController());
}
ConsumerWidget() {}
void build() {
}
}
class TableController extends Controller {
}
extension DepExtension<T extends Controller> on T {
String get check {
return "check";
}
T dep(T val) {
return val;
}
}
class DepFunction on T Function() {
T get dep {
return this();
}
}
class Dep<T> {
final T Function() builder;
Dep(T Function() builder) : this.builder = builder;
T call() {
return this.builder();
}
}
// Ignore
class Controller {
static String val = "ok";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment