Skip to content

Releases: GregUtas/robust-services-core

20210928a

28 Sep 20:35
Compare
Choose a tag to compare
  • Implement a >rename command and refactor overrides of LibraryItem.Rename and related code.
  • Support generating a cross-reference that excludes line numbers.
  • When changing an fn_name string literal, also change its variable name so that it follows the Scope_Function naming convention.
  • Don't log Indentation on a C-style comment.
  • Fix bug: FunctionUnused was no longer logged on a class function with a separate definition.
  • Fix bug: if a function declaration had an anonymous argument, DefinitionRenamesArgument was also logged on the definition's argument.
  • Fix bug: DataUnused was no longer logged on a static class member with a separate definition.
  • Fix bug: a data definition not initialized using operator= did not have its declaration as its referent.
  • Fix bug: in Editor.Replace, only update the positions where characters are erased or inserted, not modified, to prevent a C++ item from being marked as erased when it is only being renamed.
  • Fix bug: when Editor changes a C++ item, use Replace instead of Erase and Insert (Erase causes an item within its span to be marked as erased, which prevents subsequent edits).

20210831a

31 Aug 23:59
Compare
Choose a tag to compare
  • Restrict FunctionCouldBeFree to functions used in only one .cpp.
  • Support >fix for FunctionCouldBeFree when a function can move to the .cpp that defines it.
  • Selectively >fix 92 t $files (FunctionCouldBeFree).
  • Enhance >check to support FunctionCouldBeDemoted for a virtual function that can move to a subtree in the class hierarchy.
  • Demote some CodeTools and SessionBase functions.
  • Fix bug: RedundantScope was logged on a function qualified by a namespace when its name was also that of an inherited function.
  • Move Asm and StaticAssert to CxxToken.h as they are not associated with a name.
  • Update some comments and documentation, and relocate some functions.

20210815a

15 Aug 17:55
Compare
Choose a tag to compare
  • Support FunctionShouldBeStatic for functions at .cpp file scope that are not declared extern (>parse, >check, and >fix).
  • >fix 140 f $files (FunctionShouldBeStatic).
  • Document static data and functions in a .cpp as being equivalent to putting them in an unnamed namespace.
  • Fix bug: Argument.IsThisCandidate always returned nullptr.
  • Fix bug: previous fix revealed that FunctionCouldBeMember was being logged in some inapplicable scenarios.
  • Add usages of operator overloads to cross reference.
  • Compile the initialization of static members in template instances.
  • Replace IsInTemplateInstance with IsInternal where appropriate.

20210803a

03 Aug 19:22
Compare
Choose a tag to compare
  • Implement >fix 127 (DataCouldBeFree).
  • Make >check reentrant so that it can be reinvoked on a file and C++ items.
    • Log each warning against a CodeFile rather than in a private global vector.
    • Move code formatting checks from CodeFile.Scan to CodeFile.Check.
    • Preserve a warning logged during compilation, because the file won't be recompiled.
    • Preserve a warning that was fixed, which could otherwise be regenerated.
  • Update cross-reference after compiling new or modified items.
  • Fix bug: a member of T wasn't considered const when dereferencing const T*.
  • Fix bug: RecordAccess wasn't invoked on a function passed as an argument, causing spurious ItemCouldBePrivate warnings.
  • Fix bug: when fixing a warning isn't supported, >fix just returned without displaying an error message.
  • Have Lexer clone the code supplied to it, and clean up members duplicated between Lexer and Editor.
  • Selectively >fix 127 t $files to move static data members from their class to .cpp file scope.

20210715a

15 Jul 13:25
Compare
Choose a tag to compare
  • Incrementally compile a new C++ item after >fix adds it.
  • Recompile a function definition after >fix changes its implementation.
  • Fix bug: delay invoking RecordAccess on a function until argument matching selects the correct overload; this fixes incorrect ItemCouldBePrivate and ItemCouldBeProtected warnings.
  • Fix bug: enforce internal linkage for an item tagged static at .cpp file scope.
  • Generate a DataShouldBeStatic warning for data at .cpp file scope that is not static if it is not declared as extern elsewhere.
  • Fix bug: invoke RecordAccess on the copy constructor when returning an object by value to prevent a false ItemCouldBeProtected warning for the copy constructor.
  • Fix bug: Typedef.GetSpan only included the name, not the leading typedef <TypeSpec> portion.
  • Fix bug: when changing an item's access control, >fix could move it to an inner class.

20210619a

19 Jun 18:08
Compare
Choose a tag to compare
  • Implement >fix for FunctionNotSorted.
  • Implement >check and >fix for OverrideNotSorted.
  • Sort the items in a .lib file's namespace view and a .trim file alphabetically.
  • Fix bug in Lexer.CheckVerticalSpacing and improve some Lexer code and comments.
  • Fix bug: GetSpan failed to include leading keyword tags in function and data declarations.
  • Fix bug when mapping between analog functions in a template and a template instance.
  • Add an argument to Debug::noop as a way to defeat compiler folding.
  • Define SoftwareInfo log for pre-release debugging.
  • Enhance Editor and C++ item destructors so that an item can be deleted when its code is erased.
  • Update the CodeFile members that track file dependencies when inserting or deleting an #include.
  • Implement PosToItem for finding C++ items by file position.
  • Create CxxVector.h for vector-oriented function templates.
  • Change AddToXref to UpdateXref now that an item's references are removed when it is deleted.
  • Change AddReference to UpdateReference now that an item's references are removed when it is deleted.
  • >fix 103 f $files (FunctionNotSorted) after renaming the above functions.
  • >fix 138 f $files (OverrideNotSorted) after renaming the above functions.
  • Add extra braces to highlight calls to a function and its conjugate.
  • Remove subs/csetjmp.

20210513a

13 May 23:57
Compare
Choose a tag to compare
  • Implement warning W0137 for when code after case does not end with break, continue, return, throw, or [[fallthrough]].
  • Improve detection of warning W0117 for when a line break can be removed.
  • Simplify Editor.CutCode by removing CxxToken.BeginChars and CxxToken.EndChars and having overrides of CxxToken.GetSpan determine what to cut.

20210504a

04 May 14:46
Compare
Choose a tag to compare
  • Remove trivial CliParm subclasses from .cpps and just instantiate them as immediate subclasses of CliParm.
  • Fix bug: if making data or a pointer const, also update any distinct definition.
  • Fix bug when >fix declared and defined a Patch override in the same file.
  • Fix bugs involving data initialization statements.
  • Fix bug: the location of a data name was not updated after an edit, leading to a subsequent edit at an incorrect location.
  • Fix bug uncovered by the previous one: RedundantScope was spuriously logged when initializing data with a qualified name at file scope.
  • Don't log FunctionUnused on an override: only report it on the base declaration so that it and all overrides get deleted together.
  • Refactor code that checks if two lines can be merged (RemoveLineBreak warning).
  • Rewrite Lexer.CalcDepths so that the Indentation warning can be logged and fixed on any line that is not intended correctly.

20210424a

24 Apr 12:45
Compare
Choose a tag to compare
  • Fix bug in Function.IsTrivial.
  • Fix Parser to handle nested brace initialization.
  • Fix file count in "n files should be parsed to avoid spurious results."
  • Change some warnings to be logged on a C++ item rather than only by position.
  • Refactor functions involving LineType.
  • Log ClassCouldBeNamespace on a class that is never constructed and that only has public static members.
  • Log CtorCouldBeDeleted on a class that only has static members if some of them are not public.
  • Log CopyCtorNotDeleted and CopyOperNotDeleted on base classes whose leaf classes are singletons and on singletons without such a base class.
  • Improve >fix for special member functions (warning numbers 57, 58, 59, 60, 64, 66, 68, 69, 70, 71, 128, 129, 134, 135, 136).
  • Apply >fix for special member functions to all files after removing all defaulted and deleted functions.

20210407a

08 Apr 01:36
Compare
Choose a tag to compare
  • Record file location of CxxToken subclasses.
  • Support logging of warnings on CxxToken subclasses.
  • Log OperatorSpacing if an operator is incorrectly spaced.
  • Enhance Editor to fix OperatorSpacing.
  • Log PunctuationSpacing if punctuation is incorrectly spaced.
  • Enhance Editor to fix PunctuationSpacing.
  • Fix erasure of a data item declared in a series.
  • When Editor adds an override tag, remove any virtual tag.
  • When Editor cuts a function definition, erase one of its separator comments.
  • Don't log PtrTagDetached on a subsequent item in a data series.