Skip to content

Upgrading build 0.3 to 0.4

Breaking0.3.0+6 → 0.4.1+3Breaking8New2Changed5Fixed2Other1

BreakingUpgrade verdict

8 breaking changes.

  • 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.
Top 3 of 8 that need code or config changes
Breaking8
Deletes the makeAsset and makeAssets methods, since the Asset class no longer exists.
makeAssetmakeAssetsAsset
InMemoryAssetReader#cacheAsset is replaced by cacheStringAsset(AssetId id, String contents) and cacheBytesAsset(AssetId id, List<int> bytes).
InMemoryAssetReader#cacheAssetcacheStringAssetcacheBytesAssetAssetId
Removes the equalsAsset matcher, since the Asset class no longer exists.
equalsAssetAsset
The testBuilder method now requires a RecordingAssetWriter instead of just an AssetWriter for the writer parameter.
testBuilderRecordingAssetWriterAssetWriterwriter
A Matcher in outputs now matches the exact value written, with no automatic conversion between bytes and strings.
MatcheroutputswriteAsStringwriteAsBytes
The addAssets signature changes to void addAssets(Map<AssetId, dynamic> assets, InMemoryAssetWriter writer), with String or List<int> values.
addAssetsAssetIdInMemoryAssetWriter
InMemoryAssetReader#assets and InMemoryAssetWriter#assets now use Map<AssetId, DatedValue> instead of Map<AssetId, DatedString>.
InMemoryAssetReader#assetsInMemoryAssetWriter#assetsDatedValueDatedStringstringValuebytesValue
InMemoryAssetReader and InMemoryAssetWriter now implement the new AssetReader and AssetWriter interfaces.
InMemoryAssetReaderInMemoryAssetWriterAssetReaderAssetWriter

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>