Use go/packages instead of x/tools/loader: it allows to work with go modules and speedups loading of packages with the help of build cache. A lot of linters became "fast": they are enabled by --fast now and work in 1-2 seconds. Only unparam, interfacer and megacheck are "slow" linters now. Average project is analyzed 20-40% faster than before if all linters are enabled! If we enable all linters except unparam, interfacer and megacheck analysis is 10-20x faster!
		
			
				
	
	
		
			15 lines
		
	
	
		
			140 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			140 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package withtests
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestSomething(t *testing.T) {
 | 
						|
	if true {
 | 
						|
		return
 | 
						|
	} else {
 | 
						|
		fmt.Printf("test")
 | 
						|
	}
 | 
						|
}
 |