anchor.diff:        ConstructorElement constructor,
         ConstantVisitor constantVisitor,
         ErrorReporter errorReporter) {
  -    if (!_getConstructorBase(constructor).isCycleFree) {
  +    if (!_getConstructorImpl(constructor).isCycleFree) {
         // It's not safe to evaluate this constructor, so bail out.
         // TODO(paulberry): ensure that a reasonable error message is produced
         // in this case, as well as other cases involving constant expression
  
positive.code:       name.isEmpty ||
        name == "void" ||
        new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
  
    static ConstructorElementImpl _getConstructorBase(
        ConstructorElement constructor) {
      while (constructor is ConstructorMember) {
        constructor = (constructor as ConstructorMember).baseElement;
      }
      return constructor;
    }
  }
  
  /**
  
negative.code: import 'package:analyzer/src/dart/ast/utilities.dart';
  import 'package:analyzer/src/dart/element/element.dart';
  import 'package:analyzer/src/dart/element/member.dart';
  import 'package:analyzer/src/generated/element_handle.dart'
      show ConstructorElementHandle;
  import 'package:analyzer/src/generated/engine.dart';
  import 'package:analyzer/src/generated/engine.dart'
      show AnalysisEngine, RecordingErrorListener;
  