89683535创建于 2022年5月18日历史提交
import 'package:analyzer/dart/element/visitor.dart';
import 'package:analyzer/dart/element/element.dart';

class ModelVisitor extends SimpleElementVisitor<void> {
  late ConstructorElement constructor;
  final constructorParameters = <String, ParameterElement>{};
  final fields = <String, FieldElement>{};
  final methods = <String, MethodElement>{};

  @override
  void visitConstructorElement(ConstructorElement element) {
    constructor = element;
    for (final param in element.parameters) {
      constructorParameters.putIfAbsent(param.name, () => param);
    }
  }

  @override
  void visitFieldElement(FieldElement element) {
    fields[element.name] = element;
  }

  @override
  void visitMethodElement(MethodElement element) {
    methods[element.name] = element;
  }
}