Skip to content

Commit d5d4de2

Browse files
committed
Fixing test errors
1 parent 0f267ad commit d5d4de2

File tree

19 files changed

+3580
-22
lines changed

19 files changed

+3580
-22
lines changed

crates/diff-engine/src/changes.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ impl ChangeClassifier {
281281

282282
/// Comprehensive change classification with detailed analysis
283283
pub fn classify_change_detailed(
284-
&self,
284+
&mut self,
285285
source: Option<&CodeElement>,
286286
target: Option<&CodeElement>,
287287
source_ast: Option<&ASTNode>,
@@ -443,7 +443,7 @@ impl ChangeClassifier {
443443

444444
/// Classify a modification (most complex case)
445445
fn classify_modification(
446-
&self,
446+
&mut self,
447447
source: &CodeElement,
448448
target: &CodeElement,
449449
source_ast: Option<&ASTNode>,
@@ -459,7 +459,7 @@ impl ChangeClassifier {
459459
// Calculate similarity metrics if AST and signatures are available
460460
let similarity_metrics = if let (Some(src_ast), Some(tgt_ast), Some(src_sig), Some(tgt_sig)) =
461461
(source_ast, target_ast, source_signature, target_signature) {
462-
if let Some(scorer) = &mut self.similarity_scorer {
462+
if let Some(ref mut scorer) = self.similarity_scorer {
463463
Some(scorer.calculate_comprehensive_similarity(src_sig, src_ast, tgt_sig, tgt_ast)?)
464464
} else {
465465
None
@@ -552,13 +552,13 @@ impl ChangeClassifier {
552552
if let Some(metrics) = &similarity_metrics {
553553
characteristics.push(ChangeCharacteristic {
554554
characteristic_type: CharacteristicType::StructuralSimilarity,
555-
value: format!("{:.3}", metrics.ast_similarity.structural_similarity),
555+
value: format!("{:.3}", metrics.body_similarity.structural_similarity),
556556
confidence: 0.9,
557557
});
558558

559559
characteristics.push(ChangeCharacteristic {
560560
characteristic_type: CharacteristicType::ContentSimilarity,
561-
value: format!("{:.3}", metrics.ast_similarity.content_similarity),
561+
value: format!("{:.3}", metrics.body_similarity.content_similarity),
562562
confidence: 0.9,
563563
});
564564

@@ -567,9 +567,9 @@ impl ChangeClassifier {
567567
description: format!("AST similarity: {:.3}", metrics.overall_similarity),
568568
strength: metrics.overall_similarity,
569569
data: [
570-
("structural_similarity".to_string(), metrics.ast_similarity.structural_similarity.to_string()),
571-
("content_similarity".to_string(), metrics.ast_similarity.content_similarity.to_string()),
572-
("control_flow_similarity".to_string(), metrics.ast_similarity.control_flow_similarity.to_string()),
570+
("structural_similarity".to_string(), metrics.body_similarity.structural_similarity.to_string()),
571+
("content_similarity".to_string(), metrics.body_similarity.content_similarity.to_string()),
572+
("control_flow_similarity".to_string(), metrics.body_similarity.control_flow_similarity.to_string()),
573573
].into_iter().collect(),
574574
});
575575
}
@@ -897,12 +897,12 @@ impl ChangeClassifier {
897897
effort_level = EffortLevel::Medium;
898898
risk_level = RiskLevel::Medium;
899899
}
900-
}
901900

902-
if complexity > 20 {
903-
impact_level = ImpactLevel::High;
904-
effort_level = EffortLevel::High;
905-
risk_level = RiskLevel::High;
901+
if complexity > 20 {
902+
impact_level = ImpactLevel::High;
903+
effort_level = EffortLevel::High;
904+
risk_level = RiskLevel::High;
905+
}
906906
}
907907

908908
// Public functions have higher impact

crates/diff-engine/src/engine.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl DiffEngine {
6464
Self {
6565
function_matcher: FunctionMatcher::new(0.7),
6666
tree_edit_distance: TreeEditDistance::new(ZhangShashaConfig::default()),
67-
change_classifier: ChangeClassifier::new(language, ChangeClassificationConfig::default()),
67+
change_classifier: ChangeClassifier::new(language),
6868
refactoring_detector: RefactoringDetector::new(language),
6969
}
7070
}

crates/diff-engine/src/refactoring.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ impl RefactoringDetector {
373373

374374
/// Detect refactoring patterns with detailed analysis
375375
pub fn detect_patterns_detailed(
376-
&self,
376+
&mut self,
377377
changes: &[Change],
378378
source_asts: &HashMap<String, ASTNode>,
379379
target_asts: &HashMap<String, ASTNode>,
@@ -576,7 +576,7 @@ impl RefactoringDetector {
576576
description: format!(
577577
"Extracted method '{}' from '{}'",
578578
target.name,
579-
modified.source.as_ref().map(|s| &s.name).unwrap_or("unknown")
579+
modified.source.as_ref().map(|s| s.name.as_str()).unwrap_or("unknown")
580580
),
581581
affected_elements: vec![
582582
target.name.clone(),
@@ -596,7 +596,7 @@ impl RefactoringDetector {
596596

597597
/// Calculate confidence for extract method pattern
598598
fn calculate_extract_method_confidence(&self, modified: &Change, added: &Change) -> f64 {
599-
let mut confidence = 0.0;
599+
let mut confidence: f64 = 0.0;
600600

601601
// Base confidence for the pattern structure
602602
confidence += 0.4;
@@ -1012,7 +1012,7 @@ impl RefactoringDetector {
10121012

10131013
/// Detect extract method patterns with detailed analysis
10141014
fn detect_extract_method_detailed(
1015-
&self,
1015+
&mut self,
10161016
change_groups: &[Vec<&Change>],
10171017
source_asts: &HashMap<String, ASTNode>,
10181018
target_asts: &HashMap<String, ASTNode>,
@@ -1070,7 +1070,7 @@ impl RefactoringDetector {
10701070

10711071
/// Calculate detailed confidence for extract method pattern
10721072
fn calculate_detailed_extract_method_confidence(
1073-
&self,
1073+
&mut self,
10741074
modified: &Change,
10751075
added: &Change,
10761076
source_ast: Option<&ASTNode>,
@@ -1105,9 +1105,10 @@ impl RefactoringDetector {
11051105
}
11061106

11071107
// AST analysis
1108-
if let (Some(src_ast), Some(tgt_ast)) = (source_ast, target_ast) {
1109-
if let Some(scorer) = &self.similarity_scorer {
1110-
let similarity = scorer.calculate_comprehensive_similarity(src_ast, tgt_ast)?;
1108+
if let (Some(src_ast), Some(tgt_ast), Some(src_sig), Some(tgt_sig)) =
1109+
(source_ast, target_ast, source_sig, target_sig) {
1110+
if let Some(ref mut scorer) = self.similarity_scorer {
1111+
let similarity = scorer.calculate_comprehensive_similarity(src_sig, src_ast, tgt_sig, tgt_ast)?;
11111112

11121113
// Some similarity expected (shared patterns) but not too high
11131114
if similarity.overall_similarity > 0.3 && similarity.overall_similarity < 0.8 {

frontend/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

frontend/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# React + TypeScript + Vite
2+
3+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4+
5+
Currently, two official plugins are available:
6+
7+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9+
10+
## React Compiler
11+
12+
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
13+
14+
## Expanding the ESLint configuration
15+
16+
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
17+
18+
```js
19+
export default defineConfig([
20+
globalIgnores(['dist']),
21+
{
22+
files: ['**/*.{ts,tsx}'],
23+
extends: [
24+
// Other configs...
25+
26+
// Remove tseslint.configs.recommended and replace with this
27+
tseslint.configs.recommendedTypeChecked,
28+
// Alternatively, use this for stricter rules
29+
tseslint.configs.strictTypeChecked,
30+
// Optionally, add this for stylistic rules
31+
tseslint.configs.stylisticTypeChecked,
32+
33+
// Other configs...
34+
],
35+
languageOptions: {
36+
parserOptions: {
37+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
38+
tsconfigRootDir: import.meta.dirname,
39+
},
40+
// other options...
41+
},
42+
},
43+
])
44+
```
45+
46+
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47+
48+
```js
49+
// eslint.config.js
50+
import reactX from 'eslint-plugin-react-x'
51+
import reactDom from 'eslint-plugin-react-dom'
52+
53+
export default defineConfig([
54+
globalIgnores(['dist']),
55+
{
56+
files: ['**/*.{ts,tsx}'],
57+
extends: [
58+
// Other configs...
59+
// Enable lint rules for React
60+
reactX.configs['recommended-typescript'],
61+
// Enable lint rules for React DOM
62+
reactDom.configs.recommended,
63+
],
64+
languageOptions: {
65+
parserOptions: {
66+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
67+
tsconfigRootDir: import.meta.dirname,
68+
},
69+
// other options...
70+
},
71+
},
72+
])
73+
```

frontend/eslint.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import js from '@eslint/js'
2+
import globals from 'globals'
3+
import reactHooks from 'eslint-plugin-react-hooks'
4+
import reactRefresh from 'eslint-plugin-react-refresh'
5+
import tseslint from 'typescript-eslint'
6+
import { defineConfig, globalIgnores } from 'eslint/config'
7+
8+
export default defineConfig([
9+
globalIgnores(['dist']),
10+
{
11+
files: ['**/*.{ts,tsx}'],
12+
extends: [
13+
js.configs.recommended,
14+
tseslint.configs.recommended,
15+
reactHooks.configs['recommended-latest'],
16+
reactRefresh.configs.vite,
17+
],
18+
languageOptions: {
19+
ecmaVersion: 2020,
20+
globals: globals.browser,
21+
},
22+
},
23+
])

frontend/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>frontend</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)