Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

internal compiler error occurs using rls_vscode #596

Closed
cfeitong opened this issue Nov 25, 2017 · 3 comments
Closed

internal compiler error occurs using rls_vscode #596

cfeitong opened this issue Nov 25, 2017 · 3 comments

Comments

@cfeitong
Copy link

I'm using the latest nightly toolchain installed by rustup. Although autocomplete works fine, go to definition and hover doesn't.

My environment is here.

$ rustup show
Default host: x86_64-apple-darwin

nightly-x86_64-apple-darwin (default)
rustc 1.23.0-nightly (5f44c653c 2017-11-24)

Full log is here.

DEBUG:rls::server: Language Server starting up. Version: 0.123.0-nightly (015073b 2017-11-10)
TRACE:rls::server::io: reading: 1206 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":4077,"rootPath":"/Users/cfeitong/Algorithm","rootUri":"file:///Users/cfeitong/Algorithm","capabilities":{"workspace":{"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true},"executeCommand":{"dynamicRegistration":true}},"textDocument":{"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"completionItem":{"snippetSupport":true}},"hover":{"dynamicRegistration":true},"signatureHelp":{"dynamicRegistration":true},"definition":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true},"codeAction":{"dynamicRegistration":true},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true}}},"initializationOptions":{"omitInitBuild":true},"trace":"off"}}`
TRACE:rls::server: Parsed message `RawMessage { method: "initialize", id: Some(Num(0)), params: Object({"capabilities": Object({"textDocument": Object({"codeAction": Object({"dynamicRegistration": Bool(true)}), "codeLens": Object({"dynamicRegistration": Bool(true)}), "completion": Object({"completionItem": Object({"snippetSupport": Bool(true)}), "dynamicRegistration": Bool(true)}), "definition": Object({"dynamicRegistration": Bool(true)}), "documentHighlight": Object({"dynamicRegistration": Bool(true)}), "documentLink": Object({"dynamicRegistration": Bool(true)}), "documentSymbol": Object({"dynamicRegistration": Bool(true)}), "formatting": Object({"dynamicRegistration": Bool(true)}), "hover": Object({"dynamicRegistration": Bool(true)}), "onTypeFormatting": Object({"dynamicRegistration": Bool(true)}), "rangeFormatting": Object({"dynamicRegistration": Bool(true)}), "references": Object({"dynamicRegistration": Bool(true)}), "rename": Object({"dynamicRegistration": Bool(true)}), "signatureHelp": Object({"dynamicRegistration": Bool(true)}), "synchronization": Object({"didSave": Bool(true), "dynamicRegistration": Bool(true), "willSave": Bool(true), "willSaveWaitUntil": Bool(true)})}), "workspace": Object({"didChangeConfiguration": Object({"dynamicRegistration": Bool(true)}), "didChangeWatchedFiles": Object({"dynamicRegistration": Bool(true)}), "executeCommand": Object({"dynamicRegistration": Bool(true)}), "symbol": Object({"dynamicRegistration": Bool(true)})})}), "initializationOptions": Object({"omitInitBuild": Bool(true)}), "processId": Number(PosInt(4077)), "rootPath": String("/Users/cfeitong/Algorithm"), "rootUri": String("file:///Users/cfeitong/Algorithm"), "trace": String("off")}) }`
TRACE:rls::server: Handling `initialize`
TRACE:rls::server: init: InitializationOptions { omit_init_build: true }
TRACE:rls::server::io: response: "Content-Length: 500\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":{\"capabilities\":{\"textDocumentSync\":2,\"hoverProvider\":true,\"completionProvider\":{\"resolveProvider\":true,\"triggerCharacters\":[\".\",\":\"]},\"definitionProvider\":true,\"referencesProvider\":true,\"documentHighlightProvider\":true,\"documentSymbolProvider\":true,\"workspaceSymbolProvider\":true,\"codeActionProvider\":true,\"documentFormattingProvider\":true,\"documentRangeFormattingProvider\":false,\"renameProvider\":true,\"executeCommandProvider\":{\"commands\":[\"rls.applySuggestion\"]}}}}"
TRACE:rls::config: root manifest_path: "/Users/cfeitong/Algorithm/Cargo.toml"
TRACE:rls::config: infer_config_defaults: Auto-detected `Algorithm` package
TRACE:rls::config: infer_config_defaults: build_lib: true, build_bin: None
TRACE:rls::server::io: reading: 52 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","method":"initialized","params":{}}`
TRACE:rls::server: Parsed message `RawMessage { method: "initialized", id: None, params: Object({}) }`
TRACE:rls::server: Handling `initialized`
TRACE:rls::server::io: response: "Content-Length: 308\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"client/registerCapability\",\"params\":{\"registrations\":[{\"id\":\"rls-watch\",\"method\":\"workspace/didChangeWatchedFiles\",\"registerOptions\":{\"watchers\":[{\"globPattern\":\"/Users/cfeitong/Algorithm/Cargo{.toml,.lock}\"},{\"globPattern\":\"/Users/cfeitong/Algorithm/target\",\"kind\":4}]}}]}}"
TRACE:rls::server::io: reading: 472 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"rust":{"sysroot":null,"target":null,"rustflags":null,"clear_env_rust_log":true,"build_lib":null,"build_bin":null,"cfg_test":false,"unstable_features":true,"wait_to_build":500,"show_warnings":true,"goto_def_racer_fallback":false,"use_crate_blacklist":true,"build_on_save":false,"workspace_mode":false,"analyze_package":null,"features":[],"all_features":true,"no_default_features":false}}}}`
TRACE:rls::server: Parsed message `RawMessage { method: "workspace/didChangeConfiguration", id: None, params: Object({"settings": Object({"rust": Object({"all_features": Bool(true), "analyze_package": Null, "build_bin": Null, "build_lib": Null, "build_on_save": Bool(false), "cfg_test": Bool(false), "clear_env_rust_log": Bool(true), "features": Array([]), "goto_def_racer_fallback": Bool(false), "no_default_features": Bool(false), "rustflags": Null, "show_warnings": Bool(true), "sysroot": Null, "target": Null, "unstable_features": Bool(true), "use_crate_blacklist": Bool(true), "wait_to_build": Number(PosInt(500)), "workspace_mode": Bool(false)})})}) }`
TRACE:rls::server: Handling `workspace/didChangeConfiguration`
TRACE:rls::actions::notifications: config change: Object({"rust": Object({"all_features": Bool(true), "analyze_package": Null, "build_bin": Null, "build_lib": Null, "build_on_save": Bool(false), "cfg_test": Bool(false), "clear_env_rust_log": Bool(true), "features": Array([]), "goto_def_racer_fallback": Bool(false), "no_default_features": Bool(false), "rustflags": Null, "show_warnings": Bool(true), "sysroot": Null, "target": Null, "unstable_features": Bool(true), "use_crate_blacklist": Bool(true), "wait_to_build": Number(PosInt(500)), "workspace_mode": Bool(false)})})
TRACE:rls::actions::notifications: Updated config: Config { sysroot: None, target: None, rustflags: None, build_lib: Inferred(false), build_bin: Inferred(None), cfg_test: false, unstable_features: true, wait_to_build: 500, show_warnings: true, goto_def_racer_fallback: false, workspace_mode: false, analyze_package: None, clear_env_rust_log: true, build_on_save: false, use_crate_blacklist: true, target_dir: None, features: [], all_features: true, no_default_features: false }
TRACE:rls::config: root manifest_path: "/Users/cfeitong/Algorithm/Cargo.toml"
TRACE:rls::config: infer_config_defaults: Auto-detected `Algorithm` package
TRACE:rls::config: infer_config_defaults: build_lib: true, build_bin: None
TRACE:rls::server::io: response: "Content-Length: 66\r\n\r\n{\"jsonrpc\":\"2.0\",\"method\":\"rustDocument/beginBuild\",\"params\":null}"
TRACE:rls::build: request_build Cargo
TRACE:rls::server::io: response: "Content-Length: 183\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"client/registerCapability\",\"params\":{\"registrations\":[{\"id\":\"rls-range-formatting\",\"method\":\"textDocument/rangeFormatting\",\"registerOptions\":null}]}}"
TRACE:rls::build: run_build, "/Users/cfeitong/Algorithm" Cargo
TRACE:rls::build: running build
TRACE:rls::build::cargo: root manifest_path: "/Users/cfeitong/Algorithm/Cargo.toml"
TRACE:rls::build::cargo: Cargo compilation options:
CargoOptions { package: [], target: None, lib: true, bin: [], bins: false, all: false, exclude: [], all_features: true, no_default_features: false, features: [] }
TRACE:rls::server::io: reading: 4143 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/cfeitong/Algorithm/src/quick_sort.rs","languageId":"rust","version":1,"text":"use ::rand::Rng;\n\npub fn quick_sort_by<T: Ord + Clone, C: Fn(&T, &T) -> bool>(arr: &mut [T], cmp: C) {\n    quick_sort_impl(arr, &cmp, &median3_select);\n}\n\npub fn quick_sort<T: Ord + Clone>(arr: &mut [T]) {\n    quick_sort_by(arr, |a, b| a < b);\n}\n\n#[allow(dead_code)]\nfn basic_select<T>(arr: &[T]) -> usize {\n    arr.len() - 1\n}\n\n#[allow(dead_code)]\nfn random_select<T>(arr: &[T]) -> usize {\n    let mut rng = ::rand::thread_rng();\n    rng.gen_range(0, arr.len())\n}\n\n#[allow(dead_code)]\nfn median3_select<T: Ord>(arr: &[T]) -> usize {\n    let mut rng = ::rand::thread_rng();\n    let len = arr.len();\n    let ai = rng.gen_range(0, len);\n    let bi = rng.gen_range(0, len);\n    let ci = rng.gen_range(0, len);\n\n    if arr[ai] > arr[bi] && arr[ai] > arr[ci] {\n        if arr[bi] < arr[ci] {\n            ci\n        } else {\n            bi\n        }\n    } else if arr[ai] < arr[bi] && arr[ai] < arr[ci] {\n        if arr[bi] < arr[ci] {\n            bi\n        } else {\n            ci\n        }\n    } else {\n        ai\n    }\n}\n\nfn quick_sort_impl<T, C, S>(arr: &mut [T], cmp: &C, select: &S)\nwhere\n    T: Ord + Clone,\n    C: Fn(&T, &T) -> bool,\n    S: Fn(&[T]) -> usize,\n{\n    if let Some(pivot) = partition(arr, cmp, select) {\n        let len = arr.len();\n        quick_sort_impl(&mut arr[0..pivot], cmp, select);\n        quick_sort_impl(&mut arr[(pivot + 1)..len], cmp, select);\n    }\n}\n\nfn partition<T, C, S>(arr: &mut [T], cmp: &C, select: S) -> Option<usize>\nwhere\n    T: Ord + Clone,\n    C: Fn(&T, &T) -> bool,\n    S: Fn(&[T]) -> usize,\n{\n    if arr.is_empty() {\n        return None;\n    }\n\n    let idx = select(arr);\n    let last_idx = arr.len() - 1;\n    arr.swap(idx, last_idx);\n    let pivot = arr.last().cloned().unwrap();\n    let mut i: isize = -1;\n    for j in 0..(arr.len() - 1) {\n        if cmp(&arr[j], &pivot) {\n            i += 1;\n            arr.swap(i as usize, j);\n        }\n    }\n    i += 1;\n    let pivot_idx = arr.len() - 1;\n    arr.swap(i as usize, pivot_idx);\n\n    Some(i as usize)\n}\n\n#[cfg(test)]\nmod test {\n    use super::*;\n\n    #[test]\n    fn test_quick_sort_by() {\n        let mut arr0 = vec![1, 2, 3, 4, 3, 2, 1];\n        quick_sort_by(&mut arr0, |a, b| a < b);\n        assert_eq!(arr0, vec![1, 1, 2, 2, 3, 3, 4]);\n\n        let mut arr1 = vec![1];\n        quick_sort_by(&mut arr1, |a, b| a < b);\n        assert_eq!(arr1, vec![1]);\n\n        let mut rng = ::rand::thread_rng();\n        let mut arr2: Vec<i64> = vec![];\n        for _ in 0..100000 {\n            arr2.push(rng.gen())\n        }\n        quick_sort_by(&mut arr2, |a, b| a < b);\n        let t = arr2.len() - 1;\n        for i in 0..t {\n            assert!(arr2[i] <= arr2[i + 1]);\n        }\n    }\n\n    #[test]\n    fn test_quick_sort() {\n        let mut arr0 = vec![1, 2, 3, 4, 3, 2, 1];\n        quick_sort(&mut arr0);\n        assert_eq!(arr0, vec![1, 1, 2, 2, 3, 3, 4]);\n\n        let mut arr1 = vec![1];\n        quick_sort(&mut arr1);\n        assert_eq!(arr1, vec![1]);\n\n        let mut rng = ::rand::thread_rng();\n        let mut arr2: Vec<i64> = vec![];\n        for _ in 0..100000 {\n            arr2.push(rng.gen())\n        }\n        quick_sort(&mut arr2);\n        let t = arr2.len() - 1;\n        for i in 0..t {\n            assert!(arr2[i] <= arr2[i + 1]);\n        }\n    }\n\n    #[allow(dead_code)]\n    // #[test]\n    fn quick_sort_worst_case() {\n        // basic quick sort alogirthm has a O(n^2) worse case.\n        // this test case shows how to build the data that slows quick sort\n        // in fact, so simple.\n\n        // generate sorted data\n        let mut arr: Vec<_> = vec![];\n        for i in 0..100000 {\n            arr.push(i);\n        }\n        quick_sort(&mut arr);\n\n        // or an array full of the same value\n        for v in &mut arr {\n            *v = 3;\n        }\n        quick_sort(&mut arr);\n    }\n\n}\n"}}}`
TRACE:rls::server: Parsed message `RawMessage { method: "textDocument/didOpen", id: None, params: Object({"textDocument": Object({"languageId": String("rust"), "text": String("use ::rand::Rng;\n\npub fn quick_sort_by<T: Ord + Clone, C: Fn(&T, &T) -> bool>(arr: &mut [T], cmp: C) {\n    quick_sort_impl(arr, &cmp, &median3_select);\n}\n\npub fn quick_sort<T: Ord + Clone>(arr: &mut [T]) {\n    quick_sort_by(arr, |a, b| a < b);\n}\n\n#[allow(dead_code)]\nfn basic_select<T>(arr: &[T]) -> usize {\n    arr.len() - 1\n}\n\n#[allow(dead_code)]\nfn random_select<T>(arr: &[T]) -> usize {\n    let mut rng = ::rand::thread_rng();\n    rng.gen_range(0, arr.len())\n}\n\n#[allow(dead_code)]\nfn median3_select<T: Ord>(arr: &[T]) -> usize {\n    let mut rng = ::rand::thread_rng();\n    let len = arr.len();\n    let ai = rng.gen_range(0, len);\n    let bi = rng.gen_range(0, len);\n    let ci = rng.gen_range(0, len);\n\n    if arr[ai] > arr[bi] && arr[ai] > arr[ci] {\n        if arr[bi] < arr[ci] {\n            ci\n        } else {\n            bi\n        }\n    } else if arr[ai] < arr[bi] && arr[ai] < arr[ci] {\n        if arr[bi] < arr[ci] {\n            bi\n        } else {\n            ci\n        }\n    } else {\n        ai\n    }\n}\n\nfn quick_sort_impl<T, C, S>(arr: &mut [T], cmp: &C, select: &S)\nwhere\n    T: Ord + Clone,\n    C: Fn(&T, &T) -> bool,\n    S: Fn(&[T]) -> usize,\n{\n    if let Some(pivot) = partition(arr, cmp, select) {\n        let len = arr.len();\n        quick_sort_impl(&mut arr[0..pivot], cmp, select);\n        quick_sort_impl(&mut arr[(pivot + 1)..len], cmp, select);\n    }\n}\n\nfn partition<T, C, S>(arr: &mut [T], cmp: &C, select: S) -> Option<usize>\nwhere\n    T: Ord + Clone,\n    C: Fn(&T, &T) -> bool,\n    S: Fn(&[T]) -> usize,\n{\n    if arr.is_empty() {\n        return None;\n    }\n\n    let idx = select(arr);\n    let last_idx = arr.len() - 1;\n    arr.swap(idx, last_idx);\n    let pivot = arr.last().cloned().unwrap();\n    let mut i: isize = -1;\n    for j in 0..(arr.len() - 1) {\n        if cmp(&arr[j], &pivot) {\n            i += 1;\n            arr.swap(i as usize, j);\n        }\n    }\n    i += 1;\n    let pivot_idx = arr.len() - 1;\n    arr.swap(i as usize, pivot_idx);\n\n    Some(i as usize)\n}\n\n#[cfg(test)]\nmod test {\n    use super::*;\n\n    #[test]\n    fn test_quick_sort_by() {\n        let mut arr0 = vec![1, 2, 3, 4, 3, 2, 1];\n        quick_sort_by(&mut arr0, |a, b| a < b);\n        assert_eq!(arr0, vec![1, 1, 2, 2, 3, 3, 4]);\n\n        let mut arr1 = vec![1];\n        quick_sort_by(&mut arr1, |a, b| a < b);\n        assert_eq!(arr1, vec![1]);\n\n        let mut rng = ::rand::thread_rng();\n        let mut arr2: Vec<i64> = vec![];\n        for _ in 0..100000 {\n            arr2.push(rng.gen())\n        }\n        quick_sort_by(&mut arr2, |a, b| a < b);\n        let t = arr2.len() - 1;\n        for i in 0..t {\n            assert!(arr2[i] <= arr2[i + 1]);\n        }\n    }\n\n    #[test]\n    fn test_quick_sort() {\n        let mut arr0 = vec![1, 2, 3, 4, 3, 2, 1];\n        quick_sort(&mut arr0);\n        assert_eq!(arr0, vec![1, 1, 2, 2, 3, 3, 4]);\n\n        let mut arr1 = vec![1];\n        quick_sort(&mut arr1);\n        assert_eq!(arr1, vec![1]);\n\n        let mut rng = ::rand::thread_rng();\n        let mut arr2: Vec<i64> = vec![];\n        for _ in 0..100000 {\n            arr2.push(rng.gen())\n        }\n        quick_sort(&mut arr2);\n        let t = arr2.len() - 1;\n        for i in 0..t {\n            assert!(arr2[i] <= arr2[i + 1]);\n        }\n    }\n\n    #[allow(dead_code)]\n    // #[test]\n    fn quick_sort_worst_case() {\n        // basic quick sort alogirthm has a O(n^2) worse case.\n        // this test case shows how to build the data that slows quick sort\n        // in fact, so simple.\n\n        // generate sorted data\n        let mut arr: Vec<_> = vec![];\n        for i in 0..100000 {\n            arr.push(i);\n        }\n        quick_sort(&mut arr);\n\n        // or an array full of the same value\n        for v in &mut arr {\n            *v = 3;\n        }\n        quick_sort(&mut arr);\n    }\n\n}\n"), "uri": String("file:///Users/cfeitong/Algorithm/src/quick_sort.rs"), "version": Number(PosInt(1))})}) }`
TRACE:rls::server: Handling `textDocument/didOpen`
TRACE:rls::actions::notifications: on_open: "file:///Users/cfeitong/Algorithm/src/quick_sort.rs"
TRACE:rls::server::io: reading: 38 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","id":1,"result":null}`
TRACE:rls::server::io: reading: 38 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","id":2,"result":null}`
TRACE:rls::server::io: reading: 251 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","id":1,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/cfeitong/Algorithm/src/quick_sort.rs"},"range":{"start":{"line":0,"character":11},"end":{"line":0,"character":11}},"context":{"diagnostics":[]}}}`
TRACE:rls::server: Parsed message `RawMessage { method: "textDocument/codeAction", id: Some(Num(1)), params: Object({"context": Object({"diagnostics": Array([])}), "range": Object({"end": Object({"character": Number(PosInt(11)), "line": Number(PosInt(0))}), "start": Object({"character": Number(PosInt(11)), "line": Number(PosInt(0))})}), "textDocument": Object({"uri": String("file:///Users/cfeitong/Algorithm/src/quick_sort.rs")})}) }`
TRACE:rls::server: Handling `textDocument/codeAction`
TRACE:rls::actions::requests: code_action CodeActionParams { text_document: TextDocumentIdentifier { uri: "file:///Users/cfeitong/Algorithm/src/quick_sort.rs" }, range: Range { start: Position { line: 0, character: 11 }, end: Position { line: 0, character: 11 } }, context: CodeActionContext { diagnostics: [] } }
TRACE:rls::server::io: response: "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":[]}"
TRACE:rls::build::cargo: exec: rand
TRACE:rls::build::cargo: rustc not intercepted - rand
error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.23.0-nightly (5f44c653c 2017-11-24) running on x86_64-apple-darwin

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'Could not deserialize save-analysis config: MissingFieldError("reachable_only")', src/libcore/result.rs:906:4
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::_print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::begin_panic
   6: std::panicking::begin_panic_fmt
   7: rust_begin_unwind
   8: core::panicking::panic_fmt
   9: core::result::unwrap_failed
  10: rustc_save_analysis::find_config
  11: rustc_save_analysis::process_crate
  12: _ZN12rustc_driver20enable_save_analysis28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h4a9c6eeb3520bf6aE.llvm.2B161E4
  13: _ZN12rustc_driver20enable_save_analysis28_$u7b$$u7b$closure$u7d$$u7d$17h739d1602f809ea6eE.llvm.FCC0CF03
  14: _ZN12rustc_driver6driver13compile_input28_$u7b$$u7b$closure$u7d$$u7d$17h8fe802d0dc808fedE.llvm.F1122271
  15: <std::thread::local::LocalKey<T>>::with
  16: <std::thread::local::LocalKey<T>>::with
  17: rustc::ty::context::TyCtxt::create_and_enter
  18: rustc_driver::driver::compile_input
  19: rustc_driver::run_compiler

INFO:rls::build::cargo: cargo failed
cause: Could not compile `rand`.
stdout: 
TRACE:rls::server::io: response: "Content-Length: 72\r\n\r\n{\"jsonrpc\":\"2.0\",\"method\":\"rustDocument/diagnosticsBegin\",\"params\":null}"
TRACE:rls::actions::post_build: build - Error
TRACE:rls::server::io: response: "Content-Length: 70\r\n\r\n{\"jsonrpc\":\"2.0\",\"method\":\"rustDocument/diagnosticsEnd\",\"params\":null}"
TRACE:rls::server::io: reading: 179 bytes
TRACE:rls::server: Read message `{"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/cfeitong/Algorithm/src/quick_sort.rs"},"position":{"line":16,"character":18}}}`
TRACE:rls::server: Parsed message `RawMessage { method: "textDocument/hover", id: Some(Num(2)), params: Object({"position": Object({"character": Number(PosInt(18)), "line": Number(PosInt(16))}), "textDocument": Object({"uri": String("file:///Users/cfeitong/Algorithm/src/quick_sort.rs")})}) }`
TRACE:rls::server: Handling `textDocument/hover`
TRACE:rls::actions: convert_pos_to_span: "/Users/cfeitong/Algorithm/src/quick_sort.rs" Position { line: 16, character: 18 }
TRACE:rls::actions: line: `fn random_select<T>(arr: &[T]) -> usize {
`
TRACE:rls::actions: start: 17, end: 18
TRACE:rls::actions::requests: hover: Span { file: "/Users/cfeitong/Algorithm/src/quick_sort.rs", range: Range { row_start: Row(16, PhantomData), row_end: Row(16, PhantomData), col_start: Column(17, PhantomData), col_end: Column(18, PhantomData) } }
TRACE:rls::server::io: response: "Content-Length: 62\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":{\"contents\":[],\"range\":null}}"
@KillTheMule
Copy link

KillTheMule commented Nov 25, 2017

I'm seeing this as well, here is a full backtrace. Environment:

Default host: x86_64-unknown-linux-gnu

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)

installed targets for active toolchain
--------------------------------------

x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl

active toolchain
----------------

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.23.0-nightly (5f44c653c 2017-11-24)

If there's anything else you'd like to know, let me know :)

@yamafaktory
Copy link

See rust-lang/rust#46244

@cfeitong
Copy link
Author

cfeitong commented Dec 5, 2017

This is resolved in nightly-2017-12-01.

@cfeitong cfeitong closed this as completed Dec 5, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants