Skip to content
This repository was archived by the owner on Jul 28, 2023. It is now read-only.

Commit 40731f5

Browse files
authored
Merge pull request #64 from pontem-network/fix_for_build_panic
Fix for error mapping.
2 parents e40f333 + 3216082 commit 40731f5

File tree

5 files changed

+21
-18
lines changed

5 files changed

+21
-18
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dove/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "dove"
3-
version = "1.2.1"
3+
version = "1.2.2"
44
authors = [
55
"Alex Koz. <alexanderkozlovskii@wings.ai>",
66
"Dm. Yakushev <dmitryyakushev@wings.ai>",

dove/src/index/meta.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use move_core_types::language_storage::{ModuleId, CORE_CODE_ADDRESS};
1414
use move_core_types::identifier::Identifier;
1515
use vm::CompiledModule;
1616
use vm::errors::Location;
17+
use lang::compiler::source_map::ProjectOffsetMap;
1718

1819
/// Extracts metadata form source code.
1920
pub fn source_meta(
@@ -24,8 +25,10 @@ pub fn source_meta(
2425
let name = ConstPool::push(file.to_str().unwrap_or("source"));
2526
let source = fs::read_to_string(file)?;
2627

27-
let (defs, _, errors, _) =
28-
parse_file(dialect, &mut HashMap::default(), name, &source, sender);
28+
let mut files = HashMap::new();
29+
30+
let (defs, _, errors, file_offset_map) =
31+
parse_file(dialect, &mut files, name, &source, sender);
2932
if errors.is_empty() {
3033
let mut metadata = Vec::new();
3134
for def in defs {
@@ -46,15 +49,15 @@ pub fn source_meta(
4649
meta: metadata,
4750
})
4851
} else {
49-
let mut files = HashMap::new();
50-
files.insert(name, source);
52+
let offsets_map = ProjectOffsetMap::with_file_map(name, file_offset_map);
5153
let mut writer = StandardStream::stderr(ColorChoice::Auto);
52-
errors::output_errors(&mut writer, files, errors);
54+
errors::output_errors(&mut writer, files, offsets_map.transform(errors));
5355
Err(anyhow!("Failed to parse move file:{}", name))
5456
}
5557
}
5658

5759
/// Move definition metadata.
60+
#[derive(Debug)]
5861
pub struct DefinitionMeta {
5962
/// Module identifier.
6063
pub module_id: ModuleId,
@@ -63,6 +66,7 @@ pub struct DefinitionMeta {
6366
}
6467

6568
/// Move file metadata.
69+
#[derive(Debug)]
6670
pub struct FileMeta {
6771
/// File path.
6872
pub path: Rc<str>,

lang/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ vm = { git = "https://github.com/pontem-network/diem.git", branch = "release-1.2
1616
move-vm-types = { git = "https://github.com/pontem-network/diem.git", branch = "release-1.2.0-v1" }
1717
move-ir-types = { git = "https://github.com/pontem-network/diem.git", branch = "release-1.2.0-v1" }
1818
ir-to-bytecode-syntax = { git = "https://github.com/pontem-network/diem.git", branch = "release-1.2.0-v1" }
19-
2019
compat = { path = "compat", package = "move-compat" }
2120

2221
serde = "1.0.125"

lang/src/compiler/parser.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,23 +136,23 @@ pub fn parse_file(
136136
Errors,
137137
FileOffsetMap,
138138
) {
139+
files.insert(fname, source_buffer.to_owned());
140+
139141
let sender_str = sender.map(|sender| format!("{:#x}", sender));
140142
let mut mut_source = MutString::new(source_buffer);
141143
let file_source_map =
142144
normalize_source_text(dialect, (source_buffer, &mut mut_source), &sender_str);
143145

144-
let source_buffer = mut_source.freeze();
146+
let mutated_source = mut_source.freeze();
145147

146-
let (no_comments_buffer, comment_map) = match strip_comments_and_verify(fname, &source_buffer)
147-
{
148-
Err(errors) => {
149-
files.insert(fname, source_buffer);
150-
return (vec![], Default::default(), errors, file_source_map);
151-
}
152-
Ok(result) => result,
153-
};
148+
let (no_comments_buffer, comment_map) =
149+
match strip_comments_and_verify(fname, &mutated_source) {
150+
Err(errors) => {
151+
return (vec![], Default::default(), errors, file_source_map);
152+
}
153+
Ok(result) => result,
154+
};
154155

155-
files.insert(fname, source_buffer);
156156
match parse_file_string(fname, &no_comments_buffer, FileCommentMap::default()) {
157157
Ok((defs, _)) => (defs, comment_map, Vec::default(), file_source_map),
158158
Err(errors) => (vec![], comment_map, errors, file_source_map),

0 commit comments

Comments
 (0)