mirror of
				https://github.com/mgechev/revive.git
				synced 2025-10-30 23:37:49 +02:00 
			
		
		
		
	Refactor
This commit is contained in:
		| @@ -31,7 +31,7 @@ func (r *LintElseRule) Name() string { | ||||
| } | ||||
|  | ||||
| type lintElse struct { | ||||
| 	r rule.Rule | ||||
| 	r *LintElseRule | ||||
| } | ||||
|  | ||||
| func (f lintElse) Visit(n ast.Node) ast.Visitor { | ||||
| @@ -55,11 +55,10 @@ func (f lintElse) Visit(n ast.Node) ast.Visitor { | ||||
| 		} | ||||
| 		lastStmt := node.Body.List[len(node.Body.List)-1] | ||||
| 		if _, ok := lastStmt.(*ast.ReturnStmt); ok { | ||||
| 			f.r.AddFailures(rule.Failure{ | ||||
| 				Failure:  failure, | ||||
| 				Type:     rule.FailureTypeWarning, | ||||
| 				Position: f.r.Position(node.Else.Pos(), node.Else.End()), | ||||
| 			}) | ||||
| 			f.r.AddFailureAtNode(rule.Failure{ | ||||
| 				Failure: failure, | ||||
| 				Type:    rule.FailureTypeWarning, | ||||
| 			}, node.Else, f.r.File) | ||||
| 			return f | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										22
									
								
								rule/rule.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								rule/rule.go
									
									
									
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| package rule | ||||
|  | ||||
| import ( | ||||
| 	"go/ast" | ||||
| 	"go/token" | ||||
|  | ||||
| 	"github.com/mgechev/revive/file" | ||||
| @@ -58,7 +59,6 @@ type Rule interface { | ||||
| 	Apply(*file.File, Arguments) []Failure | ||||
| 	AddFailures(...Failure) | ||||
| 	Failures() []Failure | ||||
| 	Position(token.Pos, token.Pos) FailurePosition | ||||
| } | ||||
|  | ||||
| // AbstractRule defines an abstract rule. | ||||
| @@ -67,27 +67,25 @@ type AbstractRule struct { | ||||
| 	File     *file.File | ||||
| } | ||||
|  | ||||
| // Apply must be overridden by the successor struct. | ||||
| func (r *AbstractRule) Apply(file *file.File, args Arguments) { | ||||
| 	panic("Apply not implemented") | ||||
| } | ||||
|  | ||||
| // AddFailures adds rule failures. | ||||
| func (r *AbstractRule) AddFailures(failures ...Failure) { | ||||
| 	r.failures = append(r.failures, failures...) | ||||
| } | ||||
|  | ||||
| // AddFailureAtNode adds rule failure at specific node. | ||||
| func (r *AbstractRule) AddFailureAtNode(failure Failure, t ast.Node, file *file.File) { | ||||
| 	failure.Position = toFailurePosition(t.Pos(), t.End(), file) | ||||
| 	r.AddFailures(failure) | ||||
| } | ||||
|  | ||||
| // Failures returns the rule failures. | ||||
| func (r *AbstractRule) Failures() []Failure { | ||||
| 	return r.failures | ||||
| } | ||||
|  | ||||
| // Position returns position by given start and end token.Pos. | ||||
| func (r *AbstractRule) Position(start token.Pos, end token.Pos) FailurePosition { | ||||
| 	s := r.File.ToPosition(start) | ||||
| 	e := r.File.ToPosition(end) | ||||
| func toFailurePosition(start token.Pos, end token.Pos, file *file.File) FailurePosition { | ||||
| 	return FailurePosition{ | ||||
| 		Start: s, | ||||
| 		End:   e, | ||||
| 		Start: file.ToPosition(start), | ||||
| 		End:   file.ToPosition(end), | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user