- 
                Notifications
    You must be signed in to change notification settings 
- Fork 316
Open
Labels
enhancementFeature requests, or enhancements to existing features. Ideas. Anything within the project's scope.Feature requests, or enhancements to existing features. Ideas. Anything within the project's scope.feature-inspectionsup-for-grabsUse this label in conjunction with a difficulty level label, e.g. difficulty-02-duckyUse this label in conjunction with a difficulty level label, e.g. difficulty-02-ducky
Milestone
Description
What
Potential bug: predeclared class instance is assigned to a variable.
Potential reason: missed New operator.
Automatic fix: Add missing New operator.
Why
Predeclared class instances are typically used as class factories. Usually, assigning the predeclared instance to a variable would make little sense.
Example
This code should trigger the inspection:
'@PredeclaredId
Public Function Create(ByVal Arg As String) As PredeclaredClass
    Dim Instance As PredeclaredClass
    Set Instance = PredeclaredClass
    Instance.Init Arg
    Set Create = Instance
End FunctionQuickFixes
Should Rubberduck offer one or more quickfix(es) for this inspection? Describe them here (note: all inspections allow for IgnoreOnceQuickFix, unless explicitly specified):
- 
Add missing New operator Example code, after quickfix is applied: 
'@PredeclaredId
Public Function Create(ByVal Arg As String) As PredeclaredClass
    Dim Instance As PredeclaredClass
    Set Instance = New PredeclaredClass
    Instance.Init Arg
    Set Create = Instance
End FunctionResources
Each inspection needs a number of resource strings - please provide a suggestion here:
- Predeclared class instance is assigned to variable: the name of the inspection, as it appears in the inspection settings.
- Predeclared class instance is usually used as a class factory, and it should make little sense to assign it to a variable.: the detailed rationale for the inspection, as it appears in the inspection results toolwindow's bottom panel.
- Predeclared class {0} is assigned to variable, {0}:the name of the predeclared class: the resource string for an inspection result; if the string needs placeholders, identify what goes in for them (e.g. Variable {0} is not used, {0}:the name of the variable).
Metadata
Metadata
Assignees
Labels
enhancementFeature requests, or enhancements to existing features. Ideas. Anything within the project's scope.Feature requests, or enhancements to existing features. Ideas. Anything within the project's scope.feature-inspectionsup-for-grabsUse this label in conjunction with a difficulty level label, e.g. difficulty-02-duckyUse this label in conjunction with a difficulty level label, e.g. difficulty-02-ducky