## 事象
[[IntelliJ IDEA]]と[[IntelliJ Rust]]で[[バイナリクレート]]と[[ライブラリクレート]]を両方持つプロジェクトを作成すると、正しく読み込まれない。
```console
$ tree src
src
├── lib.rs
└── main.rs
```
`main.rs`はエラーにならないが[[Rust]]コードと認識されない(ジャンプなどできない)。
![[Pasted image 20221116224654.png]]
`lib.rs`はエラーが出る。
```
File is not included in module tree, analysis is not available
```
![[Pasted image 20221116224506.png]]
### 対象バージョン
- [[IntelliJ IDEA]] 2022.2
- [[IntelliJ Rust]] v0.4.181.4996-222
### 再現手順
```console
$ cargo new --bin binlib2
$ cd binlib
$ idea .
```
[[IntelliJ IDEA]]で編集。
`src/main.rs`
```rust
use binlib2::add;
fn main() {
let sum = add(1, 2);
assert_eq!(sum, 2);
}
```
`src/lib.rs`
```rust
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
```
先ほどの画像のようなエラーになる。
### ターミナルの実行結果
正常に動作する。
```console
$ cargo run
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `3`,
right: `2`', src\main.rs:5:5
```
### [[VSCode]]
[[VSCode]]では認識する。
また、[[#再現手順]]を[[VSCode]]で行ったあと(再現しない)、[[IntelliJ IDEA]]を開くと問題なし。
## 原因
不明。おそらく[[パッケージ (Rust)|パッケージ]]に関するキャッシュか何かが古くて([[バイナリクレート]]のみと認識されていて)不整合が起きていたとか...。
## 解決方法
`lib.rs`の右側に出現する`Load Cargo Changes`をクリックする。
![[Pasted image 20221116230131.png]]
もしくは[[IntelliJ IDEA]]を再起動する。