// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/**
 * This library is deprecated. Please convert all references to this library to
 * reference one of the following public libraries:
 * * package:analyzer/dart/element/element.dart
 * * package:analyzer/dart/element/type.dart
 * * package:analyzer/dart/element/visitor.dart
 *
 * If your code is using API's not available in these public libraries, please
 * contact the analyzer team to either find an alternate API or have the API you
 * depend on added to the public API.
 */
library analyzer.src.generated.element;

export 'package:analyzer/dart/element/element.dart';
export 'package:analyzer/dart/element/type.dart';
export 'package:analyzer/dart/element/visitor.dart';
export 'package:analyzer/src/dart/element/element.dart';
export 'package:analyzer/src/dart/element/member.dart';
export 'package:analyzer/src/dart/element/type.dart';
