Skip to content

Proper method name parsing

Luc Everse requested to merge proper-method-name-parsing into development

Description

Introduces real parsers for method names.

Additions

  • @Unmodifiable because that looks cool (and documents that the returned value is unmodifiable)
  • An abstract MethodEntityName that's both an EntityName and a MethodName
  • Grammars for days parsing the various aspects of the intriguing Java language
  • A detector for pythons
  • SemVer compatibility logic to find the right pythons

Changes

  • Moved method name classes around to have more logical places (right packages and tool-generated names are in the worker module)
  • getParameterTypes and getParameterNames in MethodName have default implementations
  • Renamed QualifiedName to QualifiedMethodName
  • MethodNameTransformer now handles weird nameless entities or entities with incomplete names that do not have a qualified equivalent, in which case the unqualified will be treated as qualified so no information is lost
  • Parameter is now final. Do not subclass it, why would you even want to do that
  • It's also very pure. Military-grade Parameters bby
  • Qualified method names are also qualified method name creators. They create themselves.
  • [toString]:BEAUTIFICATION([in][places])
  • Analyzers can also request the current job even if they are not job analyzers
  • Updated Lizard
  • Existing Python-based tools use the globally detected python instance instead of doing odd OS-based guessing
  • Proper method name parsing using the new grammars and grammar-based knowledge
  • JobRunners know the current job in addition to the current job's ID

Test and Review

To be filled in by the reviewers

  • All of the methods are commented to expectation

  • The methods are tested to satisfaction

  • There are no unnecessary files present in the MR

  • The continuous integration has no problems with the MR

  • The MR is filled in as requested (including labels, milestones, and reviewers)

  • The documentation is up-to-date

  • All nullable parameters are marked as such

Edited by Luc Everse

Merge request reports