Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
      View Source
      
  
var NoMeaninglessVoidOperatorRule = rule.CreateRule(rule.Rule{ Name: "no-meaningless-void-operator", Run: func(ctx rule.RuleContext, options any) rule.RuleListeners { opts, ok := options.(NoMeaninglessVoidOperatorOptions) if !ok { opts = NoMeaninglessVoidOperatorOptions{} } if opts.CheckNever == nil { opts.CheckNever = utils.Ref(false) } return rule.RuleListeners{ ast.KindVoidExpression: func(node *ast.Node) { arg := node.AsVoidExpression().Expression argType := ctx.TypeChecker.GetTypeAtLocation(arg) mask := checker.TypeFlagsVoidLike | checker.TypeFlagsNever for _, t := range utils.UnionTypeParts(argType) { mask &= checker.Type_flags(t) } fixRemoveVoidKeyword := func() rule.RuleFix { return rule.RuleFixRemoveRange(utils.TrimNodeTextRange(ctx.SourceFile, node).WithEnd(arg.Pos())) } if mask&checker.TypeFlagsVoidLike != 0 { ctx.ReportNodeWithFixes(node, buildMeaninglessVoidOperatorMessage(ctx.TypeChecker.TypeToString(argType)), fixRemoveVoidKeyword()) } else if *opts.CheckNever && mask&checker.TypeFlagsNever != 0 { ctx.ReportNodeWithSuggestions(node, buildMeaninglessVoidOperatorMessage(ctx.TypeChecker.TypeToString(argType)), rule.RuleSuggestion{ Message: buildRemoveVoidMessage(), FixesArr: []rule.RuleFix{fixRemoveVoidKeyword()}, }) } }, } }, })
Functions ¶
This section is empty.
Types ¶
type NoMeaninglessVoidOperatorOptions ¶
type NoMeaninglessVoidOperatorOptions struct {
	CheckNever *bool
}
     Click to show internal directories. 
   Click to hide internal directories.