Skip to content

Commit

Permalink
wip error: index bound
Browse files Browse the repository at this point in the history
  • Loading branch information
chioni16 committed Jul 12, 2023
1 parent 11467bf commit 7b331db
Showing 1 changed file with 13 additions and 18 deletions.
31 changes: 13 additions & 18 deletions src/bin/languageserver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -540,13 +540,7 @@ impl<'a> Builder<'a> {

// Variable expression
ast::Expression::Variable { loc, ty, var_no } => {
let constant = self
.ns
.var_constants
.get(loc)
.and_then(get_constants)
.unwrap_or_default();

// let name = self.ns.functions[*function_no].symtab.vars[*var_no].name;
let readonly = symtab
.vars
.get(var_no)
Expand All @@ -559,35 +553,36 @@ impl<'a> Builder<'a> {
})
.unwrap_or_default();

let val = format!("{} {}{}", ty.to_string(self.ns), constant, readonly);
// let val = format!("{} {}{}", ty.to_string(self.ns), name, readonly);
let val = format!("{} {}", ty.to_string(self.ns), readonly);

self.hovers.push(HoverEntry {
start: loc.start(),
stop: loc.end(),
val: make_code_block(val),
});
}
ast::Expression::ConstantVariable { loc, ty, contract_no, .. } => {
let contract = match contract_no {
Some(contract_no) => format!("{}::", self.ns.contracts[*contract_no].name),
None => "".to_string(),
};
ast::Expression::ConstantVariable { loc, ty, contract_no, var_no } => {
let contract = contract_no.map(|contract_no| format!("{}.", self.ns.contracts[contract_no].name)).unwrap_or_default();
let name = &self.ns.constants[*var_no].name;
let constant = self
.ns
.var_constants
.get(loc)
.and_then(get_constants)
.map(|s| format!(" = {}", s))
.unwrap_or_default();
let val = format!("constant {} {}{}", ty.to_string(self.ns), contract, constant);
let val = format!("{} constant {}{}{}", ty.to_string(self.ns), contract, name, constant);
self.hovers.push(HoverEntry {
start: loc.start(),
stop: loc.end(),
val: make_code_block(val),
});
}
ast::Expression::StorageVariable { loc, ty, contract_no, .. } => {
let val = format!("{}: {}", ty.to_string(self.ns), self.ns.contracts[*contract_no].name);
ast::Expression::StorageVariable { loc, ty, contract_no, var_no } => {
let contract = &self.ns.contracts[*contract_no];
let name = &contract.variables[*var_no].name;
let val = format!("{} {}.{}", ty.to_string(self.ns), contract.name, name);
self.hovers.push(HoverEntry {
start: loc.start(),
stop: loc.end(),
Expand Down Expand Up @@ -695,7 +690,7 @@ impl<'a> Builder<'a> {
", ".to_string(),
).collect::<String>();

let contract = fnc.contract_no.map(|contract_no| format!("{}::", self.ns.contracts[contract_no].name)).unwrap_or_default();
let contract = fnc.contract_no.map(|contract_no| format!("{}.", self.ns.contracts[contract_no].name)).unwrap_or_default();

let val = format!("{} {}{}({}) returns ({})\n", fnc.ty, contract, fnc.name, params, rets);

Expand Down Expand Up @@ -746,7 +741,7 @@ impl<'a> Builder<'a> {
", ".to_string(),
).collect::<String>();

let contract = fnc.contract_no.map(|contract_no| format!("{}::", self.ns.contracts[contract_no].name)).unwrap_or_default();
let contract = fnc.contract_no.map(|contract_no| format!("{}.", self.ns.contracts[contract_no].name)).unwrap_or_default();

let val = format!("{} {}{}({}) returns ({})\n", fnc.ty, contract, fnc.name, params, rets);

Expand Down

0 comments on commit 7b331db

Please sign in to comment.