fix datatype byte_idx out of range
This commit is contained in:
parent
05621800a4
commit
f325142046
@ -734,16 +734,11 @@ pub fn data_dec(
|
|||||||
var.symbol_kind = SymbolKind::VARIABLE;
|
var.symbol_kind = SymbolKind::VARIABLE;
|
||||||
}
|
}
|
||||||
for var in decs {
|
for var in decs {
|
||||||
let fix_end = if var.byte_idx > x.end {
|
|
||||||
var.byte_idx + 1
|
|
||||||
} else {
|
|
||||||
x.end
|
|
||||||
};
|
|
||||||
data.push(Declaration::Scope(GenericScope {
|
data.push(Declaration::Scope(GenericScope {
|
||||||
ident: var.ident,
|
ident: var.ident,
|
||||||
byte_idx: var.byte_idx,
|
byte_idx: var.byte_idx,
|
||||||
start: x.start,
|
start: x.start,
|
||||||
end: fix_end,
|
end: x.end.max(var.byte_idx + 1),
|
||||||
url: url.clone(),
|
url: url.clone(),
|
||||||
type_str: var.type_str,
|
type_str: var.type_str,
|
||||||
completion_kind: x.completion_kind,
|
completion_kind: x.completion_kind,
|
||||||
@ -807,6 +802,7 @@ pub fn data_dec(
|
|||||||
let ident = get_ident(tree, RefNode::TypeIdentifier(&y.nodes.2));
|
let ident = get_ident(tree, RefNode::TypeIdentifier(&y.nodes.2));
|
||||||
def.ident = ident.0;
|
def.ident = ident.0;
|
||||||
def.byte_idx = ident.1;
|
def.byte_idx = ident.1;
|
||||||
|
def.end = def.end.max(def.byte_idx + 1);
|
||||||
for _ in &y.nodes.3 {
|
for _ in &y.nodes.3 {
|
||||||
let tokens = &mut def.type_str;
|
let tokens = &mut def.type_str;
|
||||||
advance_until_leave!(
|
advance_until_leave!(
|
||||||
@ -902,6 +898,7 @@ pub fn data_dec(
|
|||||||
let ident = get_ident(tree, RefNode::NetTypeIdentifier(&y.nodes.2));
|
let ident = get_ident(tree, RefNode::NetTypeIdentifier(&y.nodes.2));
|
||||||
def.ident = ident.0;
|
def.ident = ident.0;
|
||||||
def.byte_idx = ident.1;
|
def.byte_idx = ident.1;
|
||||||
|
def.end = def.end.max(def.byte_idx + 1);
|
||||||
let mut tokens = String::new();
|
let mut tokens = String::new();
|
||||||
advance_until_enter!(
|
advance_until_enter!(
|
||||||
tokens,
|
tokens,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user