Skip to content

Commit 44d3079

Browse files
authored
Merge pull request #3 from zooper-lib/feature/fix-warnings
Fixed all the left warnings
2 parents 7d44d44 + df9a99d commit 44d3079

File tree

5 files changed

+54
-46
lines changed

5 files changed

+54
-46
lines changed

packages/raiser_generator/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.1] - 2026-01-08
9+
10+
### Changed
11+
12+
- Migrated generator implementation away from deprecated analyzer element APIs to remove deprecation warnings.
13+
814
## [2.0.0] - 2026-01-08
915

1016
### Changed

packages/raiser_generator/lib/src/handler_generator.dart

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:analyzer/dart/element/element2.dart';
1+
import 'package:analyzer/dart/element/element.dart';
22
import 'package:analyzer/dart/element/type.dart';
33
import 'package:build/build.dart';
44
import 'package:raiser_annotation/raiser_annotation.dart';
@@ -12,8 +12,8 @@ import 'models/parameter_info.dart';
1212
/// and generates registration code.
1313
class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
1414
@override
15-
String generateForAnnotatedElement(Element2 element, ConstantReader annotation, BuildStep buildStep) {
16-
final handlerInfo = extractHandlerInfo(element.firstFragment.element, annotation, buildStep);
15+
String generateForAnnotatedElement(Element element, ConstantReader annotation, BuildStep buildStep) {
16+
final handlerInfo = extractHandlerInfo(element, annotation, buildStep);
1717
// Generate registration code
1818
return _generateRegistrationCode(handlerInfo);
1919
}
@@ -22,7 +22,7 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
2222
///
2323
/// This method is used by both the individual generator and the
2424
/// aggregating builder to extract handler metadata.
25-
HandlerInfo extractHandlerInfo(Element2 element, ConstantReader annotation, BuildStep buildStep) {
25+
HandlerInfo extractHandlerInfo(Element element, ConstantReader annotation, BuildStep buildStep) {
2626
// Validate the annotated element
2727
final classElement = _validateElement(element);
2828

@@ -38,7 +38,7 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
3838

3939
// Build HandlerInfo
4040
return HandlerInfo(
41-
className: classElement.name3 ?? '',
41+
className: classElement.name ?? '',
4242
eventType: eventType,
4343
priority: priority,
4444
busName: busName,
@@ -48,9 +48,9 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
4848
}
4949

5050
/// Validates that the annotated element is a valid handler class.
51-
ClassElement2 _validateElement(Element2 element) {
51+
ClassElement _validateElement(Element element) {
5252
// Check if element is a class (Requirement 6.1)
53-
if (element is! ClassElement2) {
53+
if (element is! ClassElement) {
5454
throw InvalidGenerationSourceError('@RaiserHandler can only be applied to classes. Found: ${element.kind.displayName}');
5555
}
5656

@@ -60,38 +60,38 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
6060
if (classElement.isAbstract) {
6161
throw InvalidGenerationSourceError(
6262
"@RaiserHandler cannot be applied to abstract classes. "
63-
"'${classElement.name3}' must be concrete.",
63+
"'${classElement.name ?? ''}' must be concrete.",
6464
);
6565
}
6666

6767
// Check if class extends EventHandler<T> (Requirement 1.2)
6868
if (!_extendsEventHandler(classElement)) {
69-
throw InvalidGenerationSourceError("Class '${classElement.name3}' must extend EventHandler<T> to use @RaiserHandler.");
69+
throw InvalidGenerationSourceError("Class '${classElement.name ?? ''}' must extend EventHandler<T> to use @RaiserHandler.");
7070
}
7171

7272
// Check for accessible constructor (Requirement 6.3)
7373
if (!_hasAccessibleConstructor(classElement)) {
74-
throw InvalidGenerationSourceError("Class '${classElement.name3}' must have an accessible constructor for registration.");
74+
throw InvalidGenerationSourceError("Class '${classElement.name ?? ''}' must have an accessible constructor for registration.");
7575
}
7676

7777
return classElement;
7878
}
7979

8080
/// Checks if the class extends EventHandler<T>.
81-
bool _extendsEventHandler(ClassElement2 classElement) {
81+
bool _extendsEventHandler(ClassElement classElement) {
8282
// Check supertype chain for EventHandler
8383
for (final supertype in classElement.allSupertypes) {
84-
if (supertype.element3.name3 == 'EventHandler') {
84+
if ((supertype.element.name ?? '') == 'EventHandler') {
8585
return true;
8686
}
8787
}
8888
return false;
8989
}
9090

9191
/// Checks if the class has an accessible (public) constructor.
92-
bool _hasAccessibleConstructor(ClassElement2 classElement) {
92+
bool _hasAccessibleConstructor(ClassElement classElement) {
9393
// Look for any public constructor
94-
for (final constructor in classElement.constructors2) {
94+
for (final constructor in classElement.constructors) {
9595
if (!constructor.isPrivate && !constructor.isFactory) {
9696
return true;
9797
}
@@ -100,18 +100,18 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
100100
}
101101

102102
/// Extracts the event type T from EventHandler<T>.
103-
String _extractEventType(ClassElement2 classElement) {
103+
String _extractEventType(ClassElement classElement) {
104104
// Find EventHandler in the supertype chain
105105
for (final supertype in classElement.allSupertypes) {
106-
if (supertype.element3.name3 == 'EventHandler') {
106+
if ((supertype.element.name ?? '') == 'EventHandler') {
107107
final typeArgs = supertype.typeArguments;
108108
if (typeArgs.isNotEmpty) {
109109
final eventType = typeArgs.first;
110110

111111
// Check if the type is resolvable (not dynamic or unresolved)
112112
if (eventType is DynamicType) {
113113
throw InvalidGenerationSourceError(
114-
"Cannot resolve event type for '${classElement.name3}'. "
114+
"Cannot resolve event type for '${classElement.name ?? ''}'. "
115115
"Ensure the generic type parameter is a concrete type.",
116116
);
117117
}
@@ -125,20 +125,20 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
125125
}
126126

127127
throw InvalidGenerationSourceError(
128-
"Cannot resolve event type for '${classElement.name3}'. "
128+
"Cannot resolve event type for '${classElement.name ?? ''}'. "
129129
"Ensure the class extends EventHandler<T> with a concrete type.",
130130
);
131131
}
132132

133133
/// Analyzes the constructor for dependency injection support.
134-
ConstructorInfo _analyzeConstructor(ClassElement2 classElement) {
134+
ConstructorInfo _analyzeConstructor(ClassElement classElement) {
135135
// Find the primary constructor (unnamed or first public)
136-
ConstructorElement2? primaryConstructor;
136+
ConstructorElement? primaryConstructor;
137137

138-
for (final constructor in classElement.constructors2) {
138+
for (final constructor in classElement.constructors) {
139139
if (!constructor.isPrivate && !constructor.isFactory) {
140140
// Prefer unnamed constructor
141-
if ((constructor.name3 ?? '').isEmpty) {
141+
if ((constructor.name ?? '').isEmpty) {
142142
primaryConstructor = constructor;
143143
break;
144144
}
@@ -159,10 +159,11 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
159159

160160
// Extract parameter information
161161
final parameterInfos = parameters.map((param) {
162+
final bool isRequired = param.isRequiredNamed || param.isRequiredPositional;
162163
return ParameterInfo(
163-
name: param.name3 ?? '',
164+
name: param.name ?? '',
164165
type: param.type.getDisplayString(),
165-
isRequired: param.isRequired,
166+
isRequired: isRequired,
166167
defaultValue: param.defaultValueCode,
167168
isNamed: param.isNamed,
168169
);

packages/raiser_generator/lib/src/middleware_generator.dart

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:analyzer/dart/element/element2.dart';
1+
import 'package:analyzer/dart/element/element.dart';
22
import 'package:build/build.dart';
33
import 'package:raiser_annotation/raiser_annotation.dart';
44
import 'package:source_gen/source_gen.dart';
@@ -11,8 +11,8 @@ import 'models/parameter_info.dart';
1111
/// and generates registration code.
1212
class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware> {
1313
@override
14-
String generateForAnnotatedElement(Element2 element, ConstantReader annotation, BuildStep buildStep) {
15-
final middlewareInfo = extractMiddlewareInfo(element.firstFragment.element, annotation, buildStep);
14+
String generateForAnnotatedElement(Element element, ConstantReader annotation, BuildStep buildStep) {
15+
final middlewareInfo = extractMiddlewareInfo(element, annotation, buildStep);
1616
// Generate registration code
1717
return _generateRegistrationCode(middlewareInfo);
1818
}
@@ -21,7 +21,7 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
2121
///
2222
/// This method is used by both the individual generator and the
2323
/// aggregating builder to extract middleware metadata.
24-
MiddlewareInfo extractMiddlewareInfo(Element2 element, ConstantReader annotation, BuildStep buildStep) {
24+
MiddlewareInfo extractMiddlewareInfo(Element element, ConstantReader annotation, BuildStep buildStep) {
2525
// Validate the annotated element
2626
final classElement = _validateElement(element);
2727

@@ -34,7 +34,7 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
3434

3535
// Build MiddlewareInfo
3636
return MiddlewareInfo(
37-
className: classElement.name3 ?? '',
37+
className: classElement.name ?? '',
3838
priority: priority,
3939
busName: busName,
4040
sourceFile: buildStep.inputId.path,
@@ -43,9 +43,9 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
4343
}
4444

4545
/// Validates that the annotated element is a valid middleware class.
46-
ClassElement2 _validateElement(Element2 element) {
46+
ClassElement _validateElement(Element element) {
4747
// Check if element is a class
48-
if (element is! ClassElement2) {
48+
if (element is! ClassElement) {
4949
throw InvalidGenerationSourceError('@RaiserMiddleware can only be applied to classes. Found: ${element.kind.displayName}');
5050
}
5151

@@ -55,22 +55,22 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
5555
if (classElement.isAbstract) {
5656
throw InvalidGenerationSourceError(
5757
"@RaiserMiddleware cannot be applied to abstract classes. "
58-
"'${classElement.name3}' must be concrete.",
58+
"'${classElement.name ?? ''}' must be concrete.",
5959
);
6060
}
6161

6262
// Check for accessible constructor
6363
if (!_hasAccessibleConstructor(classElement)) {
64-
throw InvalidGenerationSourceError("Class '${classElement.name3}' must have an accessible constructor for registration.");
64+
throw InvalidGenerationSourceError("Class '${classElement.name ?? ''}' must have an accessible constructor for registration.");
6565
}
6666

6767
return classElement;
6868
}
6969

7070
/// Checks if the class has an accessible (public) constructor.
71-
bool _hasAccessibleConstructor(ClassElement2 classElement) {
71+
bool _hasAccessibleConstructor(ClassElement classElement) {
7272
// Look for any public constructor
73-
for (final constructor in classElement.constructors2) {
73+
for (final constructor in classElement.constructors) {
7474
if (!constructor.isPrivate && !constructor.isFactory) {
7575
return true;
7676
}
@@ -79,14 +79,14 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
7979
}
8080

8181
/// Analyzes the constructor for dependency injection support.
82-
ConstructorInfo _analyzeConstructor(ClassElement2 classElement) {
82+
ConstructorInfo _analyzeConstructor(ClassElement classElement) {
8383
// Find the primary constructor (unnamed or first public)
84-
ConstructorElement2? primaryConstructor;
84+
ConstructorElement? primaryConstructor;
8585

86-
for (final constructor in classElement.constructors2) {
86+
for (final constructor in classElement.constructors) {
8787
if (!constructor.isPrivate && !constructor.isFactory) {
8888
// Prefer unnamed constructor
89-
if ((constructor.name3 ?? '').isEmpty) {
89+
if ((constructor.name ?? '').isEmpty) {
9090
primaryConstructor = constructor;
9191
break;
9292
}
@@ -107,10 +107,11 @@ class RaiserMiddlewareGenerator extends GeneratorForAnnotation<RaiserMiddleware>
107107

108108
// Extract parameter information
109109
final parameterInfos = parameters.map((param) {
110+
final bool isRequired = param.isRequiredNamed || param.isRequiredPositional;
110111
return ParameterInfo(
111-
name: param.name3 ?? '',
112+
name: param.name ?? '',
112113
type: param.type.getDisplayString(),
113-
isRequired: param.isRequired,
114+
isRequired: isRequired,
114115
defaultValue: param.defaultValueCode,
115116
isNamed: param.isNamed,
116117
);

packages/raiser_generator/lib/src/raiser_collecting_builder.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class RaiserCollectingBuilder implements Builder {
4848
// Collect all handlers
4949
for (final annotatedElement in libraryReader.annotatedWith(_handlerChecker)) {
5050
try {
51-
final info = _handlerGenerator.extractHandlerInfo(annotatedElement.element.firstFragment.element, annotatedElement.annotation, buildStep);
51+
final info = _handlerGenerator.extractHandlerInfo(annotatedElement.element, annotatedElement.annotation, buildStep);
5252
handlers.add(info.toJson());
5353
} on InvalidGenerationSourceError {
5454
// Skip invalid elements, errors will be reported by validation
@@ -58,7 +58,7 @@ class RaiserCollectingBuilder implements Builder {
5858
// Collect all middleware
5959
for (final annotatedElement in libraryReader.annotatedWith(_middlewareChecker)) {
6060
try {
61-
final info = _middlewareGenerator.extractMiddlewareInfo(annotatedElement.element.firstFragment.element, annotatedElement.annotation, buildStep);
61+
final info = _middlewareGenerator.extractMiddlewareInfo(annotatedElement.element, annotatedElement.annotation, buildStep);
6262
middleware.add(info.toJson());
6363
} on InvalidGenerationSourceError {
6464
// Skip invalid elements, errors will be reported by validation
@@ -70,8 +70,8 @@ class RaiserCollectingBuilder implements Builder {
7070
// Collect imports from the source file - only event type imports are needed
7171
// We need imports that define the event types used in handlers
7272
final sourceImports = <String>[];
73-
for (final import in library.firstFragment.libraryImports2) {
74-
final importedLib = import.importedLibrary2;
73+
for (final import in library.firstFragment.libraryImports) {
74+
final importedLib = import.importedLibrary;
7575
if (importedLib == null) continue;
7676
final source = importedLib.uri.toString();
7777
// Only include imports that likely contain event definitions

packages/raiser_generator/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ topics:
1616

1717
dependencies:
1818
analyzer: '>=7.0.0 <9.0.0'
19-
build: ^3.0.0
19+
build: ^4.0.0
2020
glob: ^2.1.0
2121
raiser: ^2.0.0
2222
raiser_annotation: ^2.0.0

0 commit comments

Comments
 (0)