54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //args: -Eerrorlint
 | |
| //config_path: testdata/configs/errorlint_comparison.yml
 | |
| package testdata
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"log"
 | |
| )
 | |
| 
 | |
| var errCompare = errors.New("foo")
 | |
| 
 | |
| func errorLintDoThing() error {
 | |
| 	return errCompare
 | |
| }
 | |
| 
 | |
| func errorLintComparison() {
 | |
| 	err := errorLintDoThing()
 | |
| 	if errors.Is(err, errCompare) {
 | |
| 		log.Println("errCompare")
 | |
| 	}
 | |
| 	if err == nil {
 | |
| 		log.Println("nil")
 | |
| 	}
 | |
| 	if err != nil {
 | |
| 		log.Println("nil")
 | |
| 	}
 | |
| 	if nil == err {
 | |
| 		log.Println("nil")
 | |
| 	}
 | |
| 	if nil != err {
 | |
| 		log.Println("nil")
 | |
| 	}
 | |
| 	if err == errCompare { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
 | |
| 		log.Println("errCompare")
 | |
| 	}
 | |
| 	if err != errCompare { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
 | |
| 		log.Println("not errCompare")
 | |
| 	}
 | |
| 	if errCompare == err { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error"
 | |
| 		log.Println("errCompare")
 | |
| 	}
 | |
| 	if errCompare != err { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error"
 | |
| 		log.Println("not errCompare")
 | |
| 	}
 | |
| 	switch err { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
 | |
| 	case errCompare:
 | |
| 		log.Println("errCompare")
 | |
| 	}
 | |
| 	switch errorLintDoThing() { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors"
 | |
| 	case errCompare:
 | |
| 		log.Println("errCompare")
 | |
| 	}
 | |
| }
 | 
