Description
+ /// Create a code body that is created lazily.
+ const factory Code.lazy(
+ String Function(CodeVisitor visitor) onVisit,
+ ) = LazyCode._;
+
+/// Represents a [code] block that requires lazy visiting.
+class LazyCode implements Code {
+ final String Function(CodeVisitor visit) code;
+
+ const LazyCode._(this.code);
+
+ @override
+ R accept<R>(CodeVisitor<R> visitor, [R context]) {
+ return new Code(code(visitor)).accept(visitor, context);
+ }
+
+ @override
+ String toString() => '{LazyCode}';
+}
+