Skip to content

x/tools/gopls: Extract Function refactor doesn't put testing.T/B first #69341

Closed
@vikstrous2

Description

@vikstrous2

gopls version

Build info

golang.org/x/tools/gopls v0.16.2
golang.org/x/tools/[email protected] h1:K1z03MlikHfaMTtG01cUeL5FAOTJnITuNe0TWOcg8tM=
github.com/BurntSushi/[email protected] h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
github.com/google/[email protected] h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
golang.org/x/exp/[email protected] h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=
golang.org/x/[email protected] h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
golang.org/x/[email protected] h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/[email protected] h1:Wm3cG5X6sZ0RSVRc/H1/sciC4AT6HAKgLCSH2lbpR/c=
golang.org/x/[email protected] h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/[email protected] h1:6bJEg2w2kUHWlfdJaESYsmNfI1LKAZQi6zCa7LUn7eI=
golang.org/x/[email protected] h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I=
honnef.co/go/[email protected] h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs=
mvdan.cc/[email protected] h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo=
mvdan.cc/xurls/[email protected] h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8=
go: go1.22.3

go env

n/a

What did you do?

Extract the body of AddPWithB into a new function with gopls

package extract

import (
	"context"
	"testing"
)

type B struct {
	x int
	y int
}

func (b *B) AddPWithB(ctx context.Context, t *testing.T) (int, error) {
	sum := b.x + b.y
	t.Skip()
	return sum, ctx.Err()
}

What did you see happen?

package extract

import (
	"context"
	"testing"
)

type B struct {
	x int
	y int
}

func (b *B) AddPWithB(ctx context.Context, t *testing.T) (int, error) {
	return newFunction(ctx, b, t)
}

func newFunction(ctx context.Context, b *B, t *testing.T) (int, error) {
	sum := b.x + b.y
	t.Skip()
	return sum, ctx.Err()
}

What did you expect to see?

package extract

import (
	"context"
	"testing"
)

type B struct {
	x int
	y int
}

func (b *B) AddPWithB(ctx context.Context, t *testing.T) (int, error) {
	return newFunction(ctx, t, b)
}

func newFunction(ctx context.Context, t *testing.T, b *B) (int, error) {
	sum := b.x + b.y
	t.Skip()
	return sum, ctx.Err()
}

Editor and settings

vs code

Logs

No response

Metadata

Metadata

Assignees

Labels

ToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions