This repository was archived by the owner on Apr 8, 2025. It is now read-only.
Releases: dart-archive/code_builder
Releases · dart-archive/code_builder
2.0.0-alpha+1
2.0.0-alpha+1
- Removed
Reference.localScope. Just useReference(symbol)now. - Allow
Referenceinstead of an explicitTypeReferencein most APIs.toType()is performed for you as part the emitter process
final animal = new Class((b) => b
..name = 'Animal'
// Used to need a suffix of .toType().
..extend = const Reference('Organism')
..methods.add(new Method.returnsVoid((b) => b
..name = 'eat'
..lambda = true
..body = new Code((b) => b..code = 'print(\'Yum\')'))));- We now support the Dart 2.0 pre-release SDKs (
<2.0.0-dev.infinity) - Removed the ability to treat
Classas aTypeReference.- Was required for compilation to
dart2js, which is now tested on travis.
- Was required for compilation to
2.0.0-alpha
2.0.0-alpha
- Complete re-write to not use
package:analyzer. - Code generation now properly uses the builder pattern (via
built_value). - See examples and tests for details.
1.0.4
1.0.4
- Added
isInstanceOftoExpressionBuilder, which performs anischeck:
expect(
reference('foo').isInstanceOf(_barType),
equalsSource('foo is Bar'),
);1.0.1
1.0.1
- Support the latest version of
package:dart_style.
1.0.0 - First final release :D
1.0.0
First full release. At this point all changes until 2.0.0 will be backwards
compatible (new features) or bug fixes that are not breaking. This doesn't mean
that the entire Dart language is buildable with our API, though.
Contributions are welcome.
- Exposed
uriinImportBuilder,ExportBuilder, andPart[Of]Builder.
1.0.0-beta+7
1.0.0-beta+7
- Added
ExpressionBuilder#ternary.
1.0.0-beta+6
1.0.0-beta+6
- Added
TypeDefBuilder. - Added
FunctionParameterBuilder. - Added
asAbstractto variousMethodBuilderconstructors.
1.0.0-beta+5
- Re-published the package without merge conflicts.
1.0.0-beta+4
Lots of changes in this release. Getting close to a release candidate.
1.0.0-beta+4
- Renamed
PartBuildertoPartOfBuilder. - Added a new class,
PartBuilder, to representpart '...dart'directives. - Added the
HasAnnotationsinterface to all library/part/directive builders. - Added
asFactoryandasConsttoConstructorBuilder. - Added
ConstructorBuilder.redirectTofor a redirecting factory constructor. - Added a
namegetter toReferenceBuilder. - Supplying an empty constructor name (
'') is equivalent tonull(default). - Automatically encodes string literals with multiple lines as
'''. - Added
asThrowtoExpressionBuilder. - Fixed a bug that prevented
FieldBuilderfrom being used at the top-level.
1.0.0-beta+3
1.0.0-beta+3
- Added support for
genericTypesparameter forExpressionBuilder#invoke:
expect(
explicitThis.invoke('doThing', [literal(true)], genericTypes: [
lib$core.bool,
]),
equalsSource(r'''
this.doThing<bool>(true)
'''),
);- Added a
castAsmethod toExpressionBuilder:
expect(
literal(1.0).castAs(lib$core.num),
equalsSource(r'''
1.0 as num
'''),
);BREAKING CHANGES
- Removed
namedNewInstanceandnamedConstInstance, replaced withconstructor::
expect(
reference('Foo').newInstance([], constructor: 'other'),
equalsSource(r'''
new Foo.other()
'''),
);- Renamed
namedparameter tonamedArguments:
expect(
reference('doThing').call(
[literal(true)],
namedArguments: {
'otherFlag': literal(false),
},
),
equalsSource(r'''
doThing(true, otherFlag: false)
'''),
);1.0.0-beta+1
1.0.0-beta+1
- Add support for
switchstatements - Add support for a raw expression and statement
new ExpressionBuilder.raw(...)new StatemnetBuilder.raw(...)
This should help cover any cases not covered with builders today.
- Allow referring to a
ClassBuilderandTypeBuilderas an expression - Add support for accessing the index
[]operator on an expression
BREAKING CHANGES
- Changed
ExpressionBuilder.asAssignto always take anExpressionBuilderas
target and removed thevalueproperty. Most changes are pretty simple, and
involve just usingreference(...). For example:
literal(true).asAssign(reference('flag'))... emits flag = true.