blob: dc6da789b604712ff2adfed4febd3c1f489f37cc [file] [log] [blame]
// Copyright (c) 2019, 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.
import 'package:analyzer/dart/element/element.dart';
// ignore: implementation_imports
import 'package:analyzer/src/dart/element/member.dart' show Member;
import 'package:dartdoc/src/comment_references/parser.dart';
import 'package:dartdoc/src/model/model.dart';
class Operator extends Method {
Operator(MethodElement element, Library library, PackageGraph packageGraph)
: super(element, library, packageGraph);
Operator.inherited(MethodElement element, Container enclosingContainer,
Library library, PackageGraph packageGraph, {Member originalMember})
: super.inherited(element, enclosingContainer, library, packageGraph,
originalMember: originalMember);
@override
String get fileName {
var actualName = super.name;
if (operatorNames.containsKey(actualName)) {
actualName = 'operator_${operatorNames[actualName]}';
}
return '$actualName.$fileType';
}
@override
String get fullyQualifiedName =>
'${library.name}.${enclosingElement.name}.${super.name}';
@override
bool get isOperator => true;
@override
String get name {
// TODO(jcollins-g): New lookup code will no longer require this operator
// prefix. Delete it and use super implementation after old lookup code
// is removed.
return 'operator ${super.name}';
}
@override
String get referenceName => super.name;
}