library /*isNonNullableByDefault*/;
import self as self;
import "package:macro/macro.dart" as mac;
import "dart:core" as core;

import "package:macro/macro.dart";

@#C1
class DataClass extends core::Object {
  final field core::String string;
  constructor •({required core::String string = #C2}) → self::DataClass
    : self::DataClass::string = string, super core::Object::•()
    ;
  method /* from org-dartlang-augmentation:/a/b/c/data_class.dart-0 */ toString() → core::String {
    return "DataClass(string=${this.{self::DataClass::string}{core::String}})";
  }
}

constants  {
  #C1 = #lib1::ToStringMacro {}
  #C2 = null
}
