Upgrading build 0.3 to 0.4
Breaking0.3.0+6 → 0.4.1+3Breaking8New2Changed5Fixed2Other1
BreakingUpgrade verdict
8 breaking changes.
In plain terms
- Two helper methods for creating Asset objects are gone because Asset was removed.
- The single cacheAsset method is split into one method for strings and one for bytes.
- The equalsAsset matcher is gone because Asset was removed.
- When testing a builder you must now pass a RecordingAssetWriter, not a plain AssetWriter.
Must act Top 3 of 8 that need code or config changes
What you must change
Breaking8
Deletes the makeAsset and makeAssets methods, since the Asset class no longer exists.
makeAssetmakeAssetsAssetInMemoryAssetReader#cacheAsset is replaced by cacheStringAsset(AssetId id, String contents) and cacheBytesAsset(AssetId id, List<int> bytes).
InMemoryAssetReader#cacheAssetcacheStringAssetcacheBytesAssetAssetIdRemoves the equalsAsset matcher, since the Asset class no longer exists.
equalsAssetAssetThe testBuilder method now requires a RecordingAssetWriter instead of just an AssetWriter for the writer parameter.
testBuilderRecordingAssetWriterAssetWriterwriterA Matcher in outputs now matches the exact value written, with no automatic conversion between bytes and strings.
MatcheroutputswriteAsStringwriteAsBytesThe addAssets signature changes to void addAssets(Map<AssetId, dynamic> assets, InMemoryAssetWriter writer), with String or List<int> values.
addAssetsAssetIdInMemoryAssetWriterInMemoryAssetReader#assets and InMemoryAssetWriter#assets now use Map<AssetId, DatedValue> instead of Map<AssetId, DatedString>.
InMemoryAssetReader#assetsInMemoryAssetWriter#assetsDatedValueDatedStringstringValuebytesValueInMemoryAssetReader and InMemoryAssetWriter now implement the new AssetReader and AssetWriter interfaces.
InMemoryAssetReaderInMemoryAssetWriterAssetReaderAssetWriterAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
field Resolver.resolver: final code_transformers.Resolver - removed:
get BuilderTransformer.builders: List<Builder> - removed:
method Resolver.createTextEditTransaction(Element element): TextEditTransaction - removed:
method Resolver.evaluateConstant( LibraryElement library, Expression expression): EvaluationResult - removed:
method Resolver.getImportUri(LibraryElement lib, {AssetId from}): Uri - removed:
method Resolver.getLibraryByUri(Uri uri): LibraryElement - removed:
method Resolver.getLibraryFunction(String functionName): Element - removed:
method Resolver.getLibraryVariable(String variableName): Element - removed:
method Resolver.getSourceAssetId(Element element): AssetId - removed:
method Resolver.getSourceFile(Element element): SourceFile - removed:
method Resolver.getSourceSpan(Element element): SourceSpan - removed:
method Resolver.getType(String typeName): ClassElement - removed:
method Resolver.resolve(BuildStep buildStep, {List<AssetId> entryPoints, bool resolveAllConstants}): Future<Resolver> - changed:
class BuilderTransformer: abstract implements Transformer, DeclaringTransformer → class BuilderTransformer implements Transformer, DeclaringTransformer - changed:
ctor Resolver(this.resolver) → ctor Resolver(this._resolver) - added:
class Resolvers - added:
ctor BuilderTransformer(this.builders, {Resolvers resolvers = …}) - added:
ctor Resolvers() - added:
field BuilderTransformer.builders: final List<Builder> - added:
method BuilderTransformer.toString(): String - added:
method Resolvers.get(BuildStep buildStep, List<AssetId> entryPoints, bool resolveAllConstants): Future<Resolver>