angular_compiler 0.4.1

  • Installing
  • Versions
  • 30

Pub Package

Tooling for compiling AngularDart.


  • Catches an (invalid) null token of a provider and throws a better error.

  • Catches an (invalid) null value of the function for FactoryProvider.

  • Emits all strings for @GeneratedInjector as raw (r'$5.00').

  • Supports named arguments for ValueProvider and @GeneratedInjector.

  • Prevents InjectorReader.accept() from crashing when given a dependency with no type or token.


New Features

  • Added TypedElement to represent a statically parsed Typed.

  • TypedReader.parse() now returns a TypedElement.

  • Added $Typed, a TypeChecker for Typed.

  • Added TypedReader for parsing generic directive types.

  • Added support for void and Null types to appear in tokens.

  • Added DirectiveVisitor, and removed $HostBinding and $HostListener.

  • Added ModuleReader.extractProviderObjects to use in the view compiler.

  • Added logFine as a new top-level API.

  • Added an internal cli.dart library. See lib/cli.dart for details.

  • Added SplitDartEmitter for internal use.

  • Added $QueryList as a TypeChecker.

  • Expose the $Provider TypeChecker.

  • Added typeArgumentOf helper method.

  • Added support for recognizing the MultiToken type.

  • CompilerFlags now supports as a fast_boot argument; default is true.

  • ReflectorEmitter now takes an optional deferredModules{Source}.

  • Started adding experimental support for a new Module syntax.

Breaking Changes

  • CompilerFlags no longer parses and supports the 'debug' option and genDebugInfo is always false, and is deprecated pending removal in a future version.

  • Removes unused APIs of ComponentReader.

  • TokenReader no longer supports arbitrary const objects or literals.

  • Removed use_new_template_parser flag. The old parser was removed.

  • Removed $QueryList.

  • Added canRead to NgAssetReader.

  • Moved CompilerFlags and Profile to cli.dart.

  • linkToReference now requires a second parameter, a LibraryReader, and treats private types (i.e. prefixed with _) as dynamic as the compiler cannot point to them.

  • ReflectableEmitter has been completely replaced with a new implementation.

  • Removed all references and use of determining a "prefix" of a type. This was no longer used once ReflectableEmitter was re-written.

  • Removed a number of internal flags that were no longer strictly required.

  • ModuleReader.deduplicateProviders now returns a List not a Set, and providers that are multi are not removed, as it is a feature of the DI system to have multiple of them with the same token.

  • Add the TypeLink class, and replace uses of Uri.

  • @Component and @Directive annotated classes are no longer @Injectable. In practice this means they can no loger be provided as an implicit const Provider(FooComponent) without either manually adding @Injectable or refactoring your code. We found this didn't really affect users, and most uses of components and directives in these lists were accidental.

Bug Fixes

  • Fixed a bug where the compiler crashed after resolving a bound type failed.

  • Misspelled or otherwise erroneous annotations on classes now produce a more understandable error message, including the element that was annotated and the annotation that was not resolved.

  • Fix a bug where throwFailure hit an NPE without a stack trace.

  • linkTypeOf correctly resolves bound types (i.e. <T>) in most cases, and can fallback to dynamic otherwise.

  • Removed all remaining (invalid) references to package:barback.

  • Prevented a RangeError that occurred when an invalid import lacked an extension.

  • ReflectorEmitter now supports MultiToken and generic-typed tokens, with some known limitations. See

  • Fix a bug in the outliner that did not the correct output extension.


  • Always link to export "...template.dart" files in initReflector().
  • Catch missing field-formal (this.) fields and warn in the compiler.
  • Does not emit a registerDependencies function call for empty constructors.
  • initReflector() no longer treats @Pipe as an @Injectable service.


  • Fixed the outliner to instruct the analyzer to ignore unused imports.
  • Add NgAssetReader.


  • Various changes internal to the compiler.


  • Added various classes and helpers to form the new compile infrastructure:
    • ComponentReader
    • DependencyReader, DependencyInvocation, DependencyElement
    • ProviderReader, ProviderElement
    • TokenReader, TypeTokenElement, OpaqueTokenElement
    • getInheritanceHierarchy, urlOf
    • ReflectableReader, ReflectableOutput, ReflectableClass


  • Fixed a bug where flag entry_points was only allowed to be a list.


  • Initial commit of angular_compiler.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  angular_compiler: ^0.4.1

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:angular_compiler/angular_compiler.dart';
Version Uploaded Documentation Archive
0.4.1 Oct 10, 2018 Go to the documentation of angular_compiler 0.4.1 Download angular_compiler 0.4.1 archive
0.4.0 Aug 7, 2018 Go to the documentation of angular_compiler 0.4.0 Download angular_compiler 0.4.0 archive
0.3.0+1 Jan 9, 2018 Go to the documentation of angular_compiler 0.3.0+1 Download angular_compiler 0.3.0+1 archive
0.3.0 Aug 24, 2017 Go to the documentation of angular_compiler 0.3.0 Download angular_compiler 0.3.0 archive
0.2.1 Aug 15, 2017 Go to the documentation of angular_compiler 0.2.1 Download angular_compiler 0.2.1 archive
0.2.0 Aug 7, 2017 Go to the documentation of angular_compiler 0.2.0 Download angular_compiler 0.2.0 archive
0.1.1 Jul 12, 2017 Go to the documentation of angular_compiler 0.1.1 Download angular_compiler 0.1.1 archive
0.1.0 Jul 11, 2017 Go to the documentation of angular_compiler 0.1.0 Download angular_compiler 0.1.0 archive
0.4.0-alpha+19 Aug 2, 2018 Go to the documentation of angular_compiler 0.4.0-alpha+19 Download angular_compiler 0.4.0-alpha+19 archive
0.4.0-alpha+18 Jul 19, 2018 Go to the documentation of angular_compiler 0.4.0-alpha+18 Download angular_compiler 0.4.0-alpha+18 archive

All 28 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Oct 16, 2018, and provided a score, details, and suggestions below. Analysis was completed with status tool failures using:

  • Dart: 2.0.0
  • pana: 0.12.4


Detected platforms: unsure

Error(s) prevent platform classification:

Fix dependencies in pubspec.yaml.

Analysis issues and suggestions

Fix dependencies in pubspec.yaml.

Running pub upgrade failed with the following output:

ERR: The current Dart SDK version is 2.0.0.
 Because angular_compiler requires SDK version >=2.1.0-dev.5.0 <3.0.0, version solving failed.

Maintenance issues and suggestions

Fix platform conflicts. (-20 points)

Error(s) prevent platform classification:

Fix dependencies in pubspec.yaml.

Support Dart 2 in pubspec.yaml. (-20 points)

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see

Running dartdoc failed. (-10 points)

Make sure dartdoc runs without any issues.

The description is too short. (-20 points)

Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use angular_compiler.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0-dev.5.0 <3.0.0