blob: d0d1221fdb4076899f6a367bebae9dc58d53b35a [file] [log] [blame]
// Copyright (c) 2016, 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
part of models;
abstract class FieldRef extends ObjectRef {
/// The name of this field.
String get name;
/// The owner of this field, which can be either a Library or a
/// Class.
ObjectRef get dartOwner;
/// The declared type of this field.
///
/// The value will always be of one of the kinds:
/// Type, TypeRef, TypeParameter, BoundedType.
InstanceRef get declaredType;
/// Is this field const?
bool get isConst;
/// Is this field final?
bool get isFinal;
/// Is this field static?
bool get isStatic;
}
enum GuardClassKind { unknown, single, dynamic }
abstract class Field extends Object implements FieldRef {
/// [optional] The value of this field, if the field is static.
ObjectRef get staticValue;
/// [optional] The location of this field in the source code.
SourceLocation get location;
GuardClassKind get guardClassKind;
ClassRef get guardClass;
bool get guardNullable;
}