Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
5acca3fc
Commit
5acca3fc
authored
Apr 13, 2022
by
Jacob Vosmaer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Workhorse: simplify error handling in LSIF parser
Refactor the LSIF parser to use simpler error handling.
parent
14d70fcd
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
21 additions
and
62 deletions
+21
-62
workhorse/internal/lsif_transformer/parser/errors.go
workhorse/internal/lsif_transformer/parser/errors.go
+0
-30
workhorse/internal/lsif_transformer/parser/errors_test.go
workhorse/internal/lsif_transformer/parser/errors_test.go
+0
-26
workhorse/internal/lsif_transformer/parser/hovers.go
workhorse/internal/lsif_transformer/parser/hovers.go
+7
-2
workhorse/internal/lsif_transformer/parser/ranges.go
workhorse/internal/lsif_transformer/parser/ranges.go
+7
-2
workhorse/internal/lsif_transformer/parser/references.go
workhorse/internal/lsif_transformer/parser/references.go
+7
-2
No files found.
workhorse/internal/lsif_transformer/parser/errors.go
deleted
100644 → 0
View file @
14d70fcd
package
parser
import
(
"errors"
"strings"
)
func
combineErrors
(
errsOrNil
...
error
)
error
{
var
errs
[]
error
for
_
,
err
:=
range
errsOrNil
{
if
err
!=
nil
{
errs
=
append
(
errs
,
err
)
}
}
if
len
(
errs
)
==
0
{
return
nil
}
if
len
(
errs
)
==
1
{
return
errs
[
0
]
}
var
msgs
[]
string
for
_
,
err
:=
range
errs
{
msgs
=
append
(
msgs
,
err
.
Error
())
}
return
errors
.
New
(
strings
.
Join
(
msgs
,
"
\n
"
))
}
workhorse/internal/lsif_transformer/parser/errors_test.go
deleted
100644 → 0
View file @
14d70fcd
package
parser
import
(
"errors"
"testing"
"github.com/stretchr/testify/require"
)
type
customErr
struct
{
err
string
}
func
(
e
customErr
)
Error
()
string
{
return
e
.
err
}
func
TestCombineErrors
(
t
*
testing
.
T
)
{
err
:=
combineErrors
(
nil
,
errors
.
New
(
"first"
),
nil
,
customErr
{
"second"
})
require
.
EqualError
(
t
,
err
,
"first
\n
second"
)
err
=
customErr
{
"custom error"
}
require
.
Equal
(
t
,
err
,
combineErrors
(
nil
,
err
,
nil
))
require
.
Nil
(
t
,
combineErrors
(
nil
,
nil
,
nil
))
}
workhorse/internal/lsif_transformer/parser/hovers.go
View file @
5acca3fc
...
...
@@ -95,10 +95,15 @@ func (h *Hovers) For(refId Id) json.RawMessage {
}
func
(
h
*
Hovers
)
Close
()
error
{
return
combineErrors
(
for
_
,
err
:=
range
[]
error
{
h
.
File
.
Close
(),
h
.
Offsets
.
Close
(),
)
}
{
if
err
!=
nil
{
return
err
}
}
return
nil
}
func
(
h
*
Hovers
)
addData
(
line
[]
byte
)
error
{
...
...
workhorse/internal/lsif_transformer/parser/ranges.go
View file @
5acca3fc
...
...
@@ -130,11 +130,16 @@ func (r *Ranges) Serialize(f io.Writer, rangeIds []Id, docs map[Id]string) error
}
func
(
r
*
Ranges
)
Close
()
error
{
return
combineErrors
(
for
_
,
err
:=
range
[]
error
{
r
.
Cache
.
Close
(),
r
.
References
.
Close
(),
r
.
Hovers
.
Close
(),
)
}
{
if
err
!=
nil
{
return
err
}
}
return
nil
}
func
(
r
*
Ranges
)
definitionPathFor
(
docs
map
[
Id
]
string
,
refId
Id
)
string
{
...
...
workhorse/internal/lsif_transformer/parser/references.go
View file @
5acca3fc
...
...
@@ -86,10 +86,15 @@ func (r *References) For(docs map[Id]string, refId Id) []SerializedReference {
}
func
(
r
*
References
)
Close
()
error
{
return
combineErrors
(
for
_
,
err
:=
range
[]
error
{
r
.
Items
.
Close
(),
r
.
Offsets
.
Close
(),
)
}
{
if
err
!=
nil
{
return
err
}
}
return
nil
}
func
(
r
*
References
)
getItems
(
refId
Id
)
[]
Item
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment