@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)