Skip to content
This repository was archived by the owner on Sep 16, 2022. It is now read-only.
This repository was archived by the owner on Sep 16, 2022. It is now read-only.

Angular components can't cope with import aliases with providers and constructor parameters #245

@zoechi

Description

@zoechi
import 'package:angular2/core.dart' as _i1;
import 'package:fhir_client/webui.dart' as _i2;
import 'package:bwu_ng_mdl/bwu_ng_mdl.dart' as _i3;
import 'package:angular2_components/angular2_components.dart' as _i4;
import 'dart:core' as _i5;

@_i1.Component(
    selector: 'fhir-gen-app',
    templateUrl: 'app_component.html',
    styleUrls: const [
      'app_component.css'
    ],
    providers: const [
      _i2.ToolbarService,
   // ^^^
      _i3.MediaQueryService,
   // ^^^
      _i4.materialProviders
   // ^^^
    ])
class AppComponent {
  final _i2.AlertService alertService;
     // ^^^

  final _i2.ToolbarService toolbarService;
     // ^^^

  _i5.String title = '';

  _i5.bool mobileView = false;

  AppComponent(this.alertService, this.toolbarService) {
    toolbarService.title.listen(_titleUpdateHandler);
  }

  @_i1.HostBinding('class.mobile-view')
  _i5.bool get mobileViewCssClass => mobileView;

  @_i1.HostBinding('class.desktop-view')
  _i5.bool get desktopViewCssClass => mobileView;

  void _titleUpdateHandler(_i5.List value) {
    title = value.join('-');
  }

  _i5.bool get isIndeterminateAction => toolbarService.isIndeterminateAction;
}
Build completed successfully
Build error:
Transform DirectiveProcessor on test_project|lib/generated/components/app_component.dart threw error: Invalid argument(s): Incorrect identifier "_i2.ToolbarService".
package:angular2/src/transform/common/type_metadata_reader.dart 1316:7   _readIdentifier
package:angular2/src/transform/common/type_metadata_reader.dart 1074:14  _readProviders.<fn>
dart:_internal/iterable.dart 416                                         MappedListIterable.elementAt
dart:_internal/iterable.dart 222                                         ListIterable.toList
package:angular2/src/transform/common/type_metadata_reader.dart 1087:6   _readProviders
package:angular2/src/transform/common/type_metadata_reader.dart 626:24   _DirectiveMetadataVisitor._populateProviders
package:angular2/src/transform/common/type_metadata_reader.dart 729:9    _DirectiveMetadataVisitor.visitNamedExpression
package:analyzer/src/dart/ast/ast.dart 7455:15                           NamedExpressionImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:analyzer/src/dart/ast/ast.dart 432:16                            ArgumentListImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1353:10                           Object&RecursiveAstVisitor.visitArgumentList
package:analyzer/src/dart/ast/ast.dart 428:15                            ArgumentListImpl.accept
package:analyzer/src/dart/ast/ast.dart 323:17                            AnnotationImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1347:10                           Object&RecursiveAstVisitor.visitAnnotation
package:angular2/src/transform/common/type_metadata_reader.dart 441:28   _DirectiveMetadataVisitor.visitAnnotation
package:analyzer/src/dart/ast/ast.dart 317:15                            AnnotationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 672:19   _DirectiveMetadataVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15                           ClassDeclarationImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 72:10    TypeMetadataReader.readTypeMetadata
package:angular2/src/transform/directive_processor/rewriter.dart 98:10   _NgMetaVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15                           ClassDeclarationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 92:30   _NgMetaVisitor.visitCompilationUnit
package:analyzer/src/dart/ast/ast.dart 2445:15                           CompilationUnitImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 52:16   createNgMeta.<async>.<fn>.<async>
dart:async/future.dart 184                                               Future.Future.microtask.<fn>
dart:async/zone.dart 1150                                                _rootRun
dart:async/zone.dart 1026                                                _CustomZone.run
dart:async/zone.dart 953                                                 _CustomZone.bindCallback.<fn>
dart:async/schedule_microtask.dart 41                                    _microtaskLoop
dart:async/schedule_microtask.dart 50                                    _startMicrotaskLoop
dart:isolate-patch/isolate_patch.dart 96                                 _runPendingImmediateCallback
dart:isolate-patch/isolate_patch.dart 149                                _RawReceivePortImpl._handleMessage

package:angular2/src/transform/common/type_metadata_reader.dart 1316:7   _readIdentifier
package:angular2/src/transform/common/type_metadata_reader.dart 1074:14  _readProviders.<fn>
dart:_internal                                                           ListIterable.toList
package:angular2/src/transform/common/type_metadata_reader.dart 1087:6   _readProviders
package:angular2/src/transform/common/type_metadata_reader.dart 626:24   _DirectiveMetadataVisitor._populateProviders
package:angular2/src/transform/common/type_metadata_reader.dart 729:9    _DirectiveMetadataVisitor.visitNamedExpression
package:analyzer/src/dart/ast/ast.dart 7455:15                           NamedExpressionImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:analyzer/src/dart/ast/ast.dart 432:16                            ArgumentListImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1353:10                           Object&RecursiveAstVisitor.visitArgumentList
package:analyzer/src/dart/ast/ast.dart 428:15                            ArgumentListImpl.accept
package:analyzer/src/dart/ast/ast.dart 323:17                            AnnotationImpl.visitChildren
package:analyzer/dart/ast/visitor.dart 1347:10                           Object&RecursiveAstVisitor.visitAnnotation
package:angular2/src/transform/common/type_metadata_reader.dart 441:28   _DirectiveMetadataVisitor.visitAnnotation
package:analyzer/src/dart/ast/ast.dart 317:15                            AnnotationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 672:19   _DirectiveMetadataVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15                           ClassDeclarationImpl.accept
package:angular2/src/transform/common/type_metadata_reader.dart 72:10    TypeMetadataReader.readTypeMetadata
package:angular2/src/transform/directive_processor/rewriter.dart 98:10   _NgMetaVisitor.visitClassDeclaration
package:analyzer/src/dart/ast/ast.dart 1852:15                           ClassDeclarationImpl.accept
package:analyzer/src/dart/ast/ast.dart 7743:20                           NodeListImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 92:30   _NgMetaVisitor.visitCompilationUnit
package:analyzer/src/dart/ast/ast.dart 2445:15                           CompilationUnitImpl.accept
package:angular2/src/transform/directive_processor/rewriter.dart 52:16   createNgMeta.<async>.<fn>.<async>

This works fine though

@_i1.AngularEntrypoint('generic')
void main() {
  _i2.initLogging();
  _i3.bootstrap(_i4.AppComponent, [_i5.rootProviders]);
}

import 'dart:core' as _i1;
import 'package:angular2/core.dart' as _i2;
import 'package:test_project/generated/data_sources/mita_tac.dart' as _i3;
import 'package:angular2/router.dart' as _i4;
import 'package:angular2/platform/common.dart' as _i5;
import 'package:fhir_client/util.dart' as _i6;
import 'package:test_project/entry_points/run_mode.dart' as _i7;
import 'package:fhir_client/util/json_pretty_print_service_browser.dart' as _i8;
import 'package:fhir_client/webui.dart' as _i9;
import 'package:http/http.dart' as _i10;
import 'package:http/browser_client.dart' as _i11;

final _i1.List rootProviders = [
  _i2.provide('DataSourceMitaTac', useValue: _i3.MitaTac),
  _i4.ROUTER_PROVIDERS,
  _i2.provide(_i5.APP_BASE_HREF, useValue: '/'),
  _i2.provide(_i5.LocationStrategy, useClass: _i5.LocationStrategy),
  _i2.provide(_i6.RunMode, useValue: _i7.runMode),
  _i2.provide(_i6.JsonPrettyPrintService,
      useClass: _i8.JsonPrettyPrintServiceBrowser),
  _i2.provide(_i9.AlertService, useClass: _i9.AlertServiceBrowser),
  _i2.provide(_i10.BaseClient, useValue: _i11.BrowserClient)
];

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions