Skip to content

Commit 350a7b6

Browse files
committed
Fix Type.toString issue
Type.toString does not work in release mode.
1 parent 266eeb4 commit 350a7b6

File tree

4 files changed

+180
-20
lines changed

4 files changed

+180
-20
lines changed

lib/utils/formatting.dart

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/utils/utils.dart

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,179 @@ CodeLineSelection getCodeLineSelectionFromOffsetAndLength({
8585
extentOffset: endColumn,
8686
);
8787
}
88+
89+
String getAstNodeTypeName(AstNode node) {
90+
return switch (node) {
91+
final AdjacentStrings _ => 'AdjacentStrings',
92+
final Annotation _ => 'Annotation',
93+
final ArgumentList _ => 'ArgumentList',
94+
final AsExpression _ => 'AsExpression',
95+
final AssertInitializer _ => 'AssertInitializer',
96+
final AssertStatement _ => 'AssertStatement',
97+
final AssignedVariablePattern _ => 'AssignedVariablePattern',
98+
final AssignmentExpression _ => 'AssignmentExpression',
99+
final AugmentationImportDirective _ => 'AugmentationImportDirective',
100+
final AwaitExpression _ => 'AwaitExpression',
101+
final BinaryExpression _ => 'BinaryExpression',
102+
final Block _ => 'Block',
103+
final BlockFunctionBody _ => 'BlockFunctionBody',
104+
final BooleanLiteral _ => 'BooleanLiteral',
105+
final BreakStatement _ => 'BreakStatement',
106+
final CascadeExpression _ => 'CascadeExpression',
107+
final CaseClause _ => 'CaseClause',
108+
final CastPattern _ => 'CastPattern',
109+
final CatchClause _ => 'CatchClause',
110+
final CatchClauseParameter _ => 'CatchClauseParameter',
111+
final ClassDeclaration _ => 'ClassDeclaration',
112+
final ClassTypeAlias _ => 'ClassTypeAlias',
113+
final Comment _ => 'Comment',
114+
final CommentReference _ => 'CommentReference',
115+
final CompilationUnit _ => 'CompilationUnit',
116+
final ConditionalExpression _ => 'ConditionalExpression',
117+
final Configuration _ => 'Configuration',
118+
final ConstantPattern _ => 'ConstantPattern',
119+
final ConstructorDeclaration _ => 'ConstructorDeclaration',
120+
final ConstructorFieldInitializer _ => 'ConstructorFieldInitializer',
121+
final ConstructorName _ => 'ConstructorName',
122+
final ConstructorReference _ => 'ConstructorReference',
123+
final ConstructorSelector _ => 'ConstructorSelector',
124+
final ContinueStatement _ => 'ContinueStatement',
125+
final DeclaredIdentifier _ => 'DeclaredIdentifier',
126+
final DeclaredVariablePattern _ => 'DeclaredVariablePattern',
127+
final DefaultFormalParameter _ => 'DefaultFormalParameter',
128+
final DoStatement _ => 'DoStatement',
129+
final DottedName _ => 'DottedName',
130+
final DoubleLiteral _ => 'DoubleLiteral',
131+
final EmptyFunctionBody _ => 'EmptyFunctionBody',
132+
final EmptyStatement _ => 'EmptyStatement',
133+
final EnumConstantArguments _ => 'EnumConstantArguments',
134+
final EnumConstantDeclaration _ => 'EnumConstantDeclaration',
135+
final EnumDeclaration _ => 'EnumDeclaration',
136+
final ExportDirective _ => 'ExportDirective',
137+
final ExpressionFunctionBody _ => 'ExpressionFunctionBody',
138+
final ExpressionStatement _ => 'ExpressionStatement',
139+
final ExtendsClause _ => 'ExtendsClause',
140+
final ExtensionDeclaration _ => 'ExtensionDeclaration',
141+
final ExtensionOverride _ => 'ExtensionOverride',
142+
final ExtensionTypeDeclaration _ => 'ExtensionTypeDeclaration',
143+
final FieldDeclaration _ => 'FieldDeclaration',
144+
final FieldFormalParameter _ => 'FieldFormalParameter',
145+
final ForEachPartsWithDeclaration _ => 'ForEachPartsWithDeclaration',
146+
final ForEachPartsWithIdentifier _ => 'ForEachPartsWithIdentifier',
147+
final ForEachPartsWithPattern _ => 'ForEachPartsWithPattern',
148+
final ForElement _ => 'ForElement',
149+
final FormalParameterList _ => 'FormalParameterList',
150+
final ForPartsWithDeclarations _ => 'ForPartsWithDeclarations',
151+
final ForPartsWithExpression _ => 'ForPartsWithExpression',
152+
final ForPartsWithPattern _ => 'ForPartsWithPattern',
153+
final ForStatement _ => 'ForStatement',
154+
final FunctionDeclaration _ => 'FunctionDeclaration',
155+
final FunctionDeclarationStatement _ => 'FunctionDeclarationStatement',
156+
final FunctionExpression _ => 'FunctionExpression',
157+
final FunctionExpressionInvocation _ => 'FunctionExpressionInvocation',
158+
final FunctionReference _ => 'FunctionReference',
159+
final FunctionTypeAlias _ => 'FunctionTypeAlias',
160+
final FunctionTypedFormalParameter _ => 'FunctionTypedFormalParameter',
161+
final GenericFunctionType _ => 'GenericFunctionType',
162+
final GenericTypeAlias _ => 'GenericTypeAlias',
163+
final GuardedPattern _ => 'GuardedPattern',
164+
final HideCombinator _ => 'HideCombinator',
165+
final IfElement _ => 'IfElement',
166+
final IfStatement _ => 'IfStatement',
167+
final ImplementsClause _ => 'ImplementsClause',
168+
final ImplicitCallReference _ => 'ImplicitCallReference',
169+
final ImportDirective _ => 'ImportDirective',
170+
final ImportPrefixReference _ => 'ImportPrefixReference',
171+
final IndexExpression _ => 'IndexExpression',
172+
final InstanceCreationExpression _ => 'InstanceCreationExpression',
173+
final IntegerLiteral _ => 'IntegerLiteral',
174+
final InterpolationExpression _ => 'InterpolationExpression',
175+
final InterpolationString _ => 'InterpolationString',
176+
final IsExpression _ => 'IsExpression',
177+
final Label _ => 'Label _',
178+
final LabeledStatement _ => 'LabeledStatement',
179+
final LibraryAugmentationDirective _ => 'LibraryAugmentationDirective',
180+
final LibraryDirective _ => 'LibraryDirective',
181+
final LibraryIdentifier _ => 'LibraryIdentifier',
182+
final ListLiteral _ => 'ListLiteral',
183+
final ListPattern _ => 'ListPattern',
184+
final LogicalAndPattern _ => 'LogicalAndPattern',
185+
final LogicalOrPattern _ => 'LogicalOrPattern',
186+
final MapLiteralEntry _ => 'MapLiteralEntry',
187+
final MapPattern _ => 'MapPattern',
188+
final MapPatternEntry _ => 'MapPatternEntry',
189+
final MethodDeclaration _ => 'MethodDeclaration',
190+
final MethodInvocation _ => 'MethodInvocation',
191+
final MixinDeclaration _ => 'MixinDeclaration',
192+
final NamedExpression _ => 'NamedExpression',
193+
final NamedType _ => 'NamedType',
194+
final NativeClause _ => 'NativeClause',
195+
final NativeFunctionBody _ => 'NativeFunctionBody',
196+
final NullAssertPattern _ => 'NullAssertPattern',
197+
final NullCheckPattern _ => 'NullCheckPattern',
198+
final NullLiteral _ => 'NullLiteral',
199+
final ObjectPattern _ => 'ObjectPattern',
200+
final OnClause _ => 'OnClause',
201+
final ParenthesizedExpression _ => 'ParenthesizedExpression',
202+
final ParenthesizedPattern _ => 'ParenthesizedPattern',
203+
final PartDirective _ => 'PartDirective',
204+
final PartOfDirective _ => 'PartOfDirective',
205+
final PatternAssignment _ => 'PatternAssignment',
206+
final PatternField _ => 'PatternField',
207+
final PatternFieldName _ => 'PatternFieldName',
208+
final PatternVariableDeclaration _ => 'PatternVariableDeclaration',
209+
final PatternVariableDeclarationStatement _ => 'PatternVariableDeclarationStatement',
210+
final PostfixExpression _ => 'PostfixExpression',
211+
final PrefixedIdentifier _ => 'PrefixedIdentifier',
212+
final PrefixExpression _ => 'PrefixExpression',
213+
final PropertyAccess _ => 'PropertyAccess',
214+
final RecordLiteral _ => 'RecordLiteral',
215+
final RecordPattern _ => 'RecordPattern',
216+
final RecordTypeAnnotation _ => 'RecordTypeAnnotation',
217+
final RecordTypeAnnotationNamedField _ => 'RecordTypeAnnotationNamedField',
218+
final RecordTypeAnnotationNamedFields _ => 'RecordTypeAnnotationNamedFields',
219+
final RecordTypeAnnotationPositionalField _ => 'RecordTypeAnnotationPositionalField',
220+
final RedirectingConstructorInvocation _ => 'RedirectingConstructorInvocation',
221+
final RelationalPattern _ => 'RelationalPattern',
222+
final RepresentationConstructorName _ => 'RepresentationConstructorName',
223+
final RepresentationDeclaration _ => 'RepresentationDeclaration',
224+
final RestPatternElement _ => 'RestPatternElement',
225+
final RethrowExpression _ => 'RethrowExpression',
226+
final ReturnStatement _ => 'ReturnStatement',
227+
final ScriptTag _ => 'ScriptTag',
228+
final SetOrMapLiteral _ => 'SetOrMapLiteral',
229+
final ShowCombinator _ => 'ShowCombinator',
230+
final SimpleFormalParameter _ => 'SimpleFormalParameter',
231+
final SimpleIdentifier _ => 'SimpleIdentifier',
232+
final SimpleStringLiteral _ => 'SimpleStringLiteral',
233+
final SpreadElement _ => 'SpreadElement',
234+
final StringInterpolation _ => 'StringInterpolation',
235+
final SuperConstructorInvocation _ => 'SuperConstructorInvocation',
236+
final SuperExpression _ => 'SuperExpression',
237+
final SuperFormalParameter _ => 'SuperFormalParameter',
238+
final SwitchCase _ => 'SwitchCase',
239+
final SwitchDefault _ => 'SwitchDefault',
240+
final SwitchExpression _ => 'SwitchExpression',
241+
final SwitchExpressionCase _ => 'SwitchExpressionCase',
242+
final SwitchPatternCase _ => 'SwitchPatternCase',
243+
final SwitchStatement _ => 'SwitchStatement',
244+
final SymbolLiteral _ => 'SymbolLiteral',
245+
final ThisExpression _ => 'ThisExpression',
246+
final ThrowExpression _ => 'ThrowExpression',
247+
final TopLevelVariableDeclaration _ => 'TopLevelVariableDeclaration',
248+
final TryStatement _ => 'TryStatement',
249+
final TypeArgumentList _ => 'TypeArgumentList',
250+
final TypeLiteral _ => 'TypeLiteral',
251+
final TypeParameter _ => 'TypeParameter',
252+
final TypeParameterList _ => 'TypeParameterList',
253+
final VariableDeclaration _ => 'VariableDeclaration',
254+
final VariableDeclarationList _ => 'VariableDeclarationList',
255+
final VariableDeclarationStatement _ => 'VariableDeclarationStatement',
256+
final WhenClause _ => 'WhenClause',
257+
final WhileStatement _ => 'WhileStatement',
258+
final WildcardPattern _ => 'WildcardPattern',
259+
final WithClause _ => 'WithClause',
260+
final YieldStatement _ => 'YieldStatement',
261+
final AstNode _ => 'AstNode',
262+
};
263+
}

lib/widgets/ast_node_details_view.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:analyzer/dart/ast/ast.dart';
22
import 'package:flutter/material.dart';
33

4-
import '../utils/formatting.dart';
4+
import '../utils/utils.dart';
55
import 'app_decorated_box.dart';
66

77
class AstNodeDetailsView extends StatelessWidget {
@@ -203,7 +203,7 @@ class AstNodeDetailsView extends StatelessWidget {
203203
children: [
204204
ListTile(
205205
title: Text(
206-
formatAstNodeRuntimeType(astNode),
206+
getAstNodeTypeName(astNode),
207207
style: textTheme.titleLarge,
208208
),
209209
),

lib/widgets/ast_node_tree_view.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
33
import 'package:flutter_fancy_tree_view/flutter_fancy_tree_view.dart';
44

55
import '../models/tree_node.dart';
6-
import '../utils/formatting.dart';
6+
import '../utils/utils.dart';
77
import 'app_decorated_box.dart';
88

99
class AstNodeTreeView extends StatefulWidget {
@@ -74,7 +74,7 @@ class _AstNodeTreeViewState extends State<AstNodeTreeView> {
7474
color: theme.dividerColor,
7575
),
7676
child: Text(
77-
formatAstNodeRuntimeType(astNode),
77+
getAstNodeTypeName(astNode),
7878
overflow: TextOverflow.ellipsis,
7979
),
8080
),

0 commit comments

Comments
 (0)