library;
import self as self;
import "dart:core" as core;

class VariableDeclaration extends core::Object {
  field core::String? _name;
  field core::int flags = 0;
  constructor •(core::String? _name, {core::int flags = #C1}) → self::VariableDeclaration
    : self::VariableDeclaration::_name = _name, super core::Object::•() {
    if(!(flags =={core::num::==}{(core::Object) → core::bool} 1.{core::int::unary-}(){() → core::int})) {
      this.{self::VariableDeclaration::flags} = flags;
    }
  }
  static synthetic method _#new#tearOff(core::String? _name, {core::int flags = #C1}) → self::VariableDeclaration
    return new self::VariableDeclaration::•(_name, flags: flags);
  get name() → core::String?
    return this.{self::VariableDeclaration::_name}{core::String?};
}

constants  {
  #C1 = -1.0
}
