Releases: GregUtas/robust-services-core
Releases · GregUtas/robust-services-core
20210928a
- Implement a
>rename
command and refactor overrides ofLibraryItem.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 theScope_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, useReplace
instead ofErase
andInsert
(Erase
causes an item within its span to be marked as erased, which prevents subsequent edits).
20210831a
- Restrict
FunctionCouldBeFree
to functions used in only one .cpp. - Support
>fix
forFunctionCouldBeFree
when a function can move to the .cpp that defines it. - Selectively
>fix 92 t $files
(FunctionCouldBeFree
). - Enhance
>check
to supportFunctionCouldBeDemoted
for a virtual function that can move to a subtree in the class hierarchy. - Demote some
CodeTools
andSessionBase
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
andStaticAssert
to CxxToken.h as they are not associated with a name. - Update some comments and documentation, and relocate some functions.
20210815a
- Support
FunctionShouldBeStatic
for functions at .cpp file scope that are not declaredextern
(>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 returnednullptr
. - 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
withIsInternal
where appropriate.
20210803a
- 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
toCodeFile.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.
- Log each warning against a
- Update cross-reference after compiling new or modified items.
- Fix bug: a member of
T
wasn't consideredconst
when dereferencingconst T*
. - Fix bug:
RecordAccess
wasn't invoked on a function passed as an argument, causing spuriousItemCouldBePrivate
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 betweenLexer
andEditor
. - Selectively
>fix 127 t $files
to move static data members from their class to .cpp file scope.
20210715a
- 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 incorrectItemCouldBePrivate
andItemCouldBeProtected
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 notstatic
if it is not declared asextern
elsewhere. - Fix bug: invoke
RecordAccess
on the copy constructor when returning an object by value to prevent a falseItemCouldBeProtected
warning for the copy constructor. - Fix bug:
Typedef.GetSpan
only included the name, not the leadingtypedef
<TypeSpec> portion. - Fix bug: when changing an item's access control,
>fix
could move it to an inner class.
20210619a
- Implement
>fix
forFunctionNotSorted
. - Implement
>check
and>fix
forOverrideNotSorted
. - Sort the items in a .lib file's namespace view and a .trim file alphabetically.
- Fix bug in
Lexer.CheckVerticalSpacing
and improve someLexer
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
forvector
-oriented function templates. - Change
AddToXref
toUpdateXref
now that an item's references are removed when it is deleted. - Change
AddReference
toUpdateReference
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
- Implement warning
W0137
for when code aftercase
does not end withbreak
,continue
,return
,throw
, or[[fallthrough]]
. - Improve detection of warning
W0117
for when a line break can be removed. - Simplify
Editor.CutCode
by removingCxxToken.BeginChars
andCxxToken.EndChars
and having overrides ofCxxToken.GetSpan
determine what to cut.
20210504a
- Remove trivial
CliParm
subclasses from .cpps and just instantiate them as immediate subclasses ofCliParm
. - Fix bug: if making data or a pointer
const
, also update any distinct definition. - Fix bug when
>fix
declared and defined aPatch
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 theIndentation
warning can be logged and fixed on any line that is not intended correctly.
20210424a
- 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
andCopyOperNotDeleted
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
- Record file location of
CxxToken
subclasses. - Support logging of warnings on
CxxToken
subclasses. - Log
OperatorSpacing
if an operator is incorrectly spaced. - Enhance
Editor
to fixOperatorSpacing
. - Log
PunctuationSpacing
if punctuation is incorrectly spaced. - Enhance
Editor
to fixPunctuationSpacing
. - Fix erasure of a data item declared in a series.
- When
Editor
adds anoverride
tag, remove anyvirtual
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.