3
3
// Use of this source code is governed by a BSD-style license that can be
4
4
// found in the LICENSE file.
5
5
6
- import 'package:analyzer/dart/analysis/analysis_context.dart' ;
7
- import 'package:analyzer/dart/analysis/analysis_context_collection.dart' ;
8
- import 'package:analyzer/dart/analysis/results.dart' ;
9
- import 'package:analyzer/dart/ast/ast.dart' ;
10
6
import 'package:file/file.dart' ;
11
7
import 'package:flutter_tools/src/base/file_system.dart' ;
12
8
import 'package:flutter_tools/src/base/terminal.dart' ;
@@ -121,38 +117,6 @@ mixin DartPluginRegistry on FlutterCommand {
121
117
String get targetFile => _targetFile ?? super .targetFile;
122
118
}
123
119
124
- /// Finds entry point functions annotated with `@pragma('vm:entry-point')`
125
- /// from [dartFile] and returns their names.
126
- List <String > _findDartEntrypoints (File dartFile) {
127
- final String path = dartFile.absolute.path;
128
- final AnalysisContextCollection collection =
129
- AnalysisContextCollection (includedPaths: < String > [path]);
130
- final AnalysisContext context = collection.contextFor (path);
131
- final SomeParsedUnitResult parsed =
132
- context.currentSession.getParsedUnit2 (path);
133
- final List <String > names = < String > ['main' ];
134
- if (parsed is ParsedUnitResult ) {
135
- for (final FunctionDeclaration function
136
- in parsed.unit.declarations.whereType <FunctionDeclaration >()) {
137
- if (function.name.name == 'main' ) {
138
- continue ;
139
- }
140
- for (final Annotation annotation in function.metadata) {
141
- if (annotation.name.name != 'pragma' ) {
142
- continue ;
143
- }
144
- final ArgumentList ? arguments = annotation.arguments;
145
- if (arguments != null &&
146
- arguments.arguments.isNotEmpty &&
147
- arguments.arguments.first.toSource ().contains ('vm:entry-point' )) {
148
- names.add (function.name.name);
149
- }
150
- }
151
- }
152
- }
153
- return names;
154
- }
155
-
156
120
/// See:
157
121
/// - [WebEntrypointTarget.build] in `web.dart`
158
122
/// - [generateMainDartWithPluginRegistrant] in `flutter_plugins.dart`
@@ -172,15 +136,12 @@ Future<void> _generateEntrypointWithPluginRegistrant(
172
136
Cache .flutterRoot! ,
173
137
);
174
138
final Uri mainUri = packageConfig.toPackageUri (mainFileUri) ?? mainFileUri;
175
- final List <String > dartEntrypoints = _findDartEntrypoints (mainFile);
176
139
final List <TizenPlugin > dartPlugins =
177
140
await findTizenPlugins (project, dartOnly: true );
178
141
179
142
final Map <String , Object > context = < String , Object > {
180
143
'mainImport' : mainUri.toString (),
181
144
'dartLanguageVersion' : languageVersion.toString (),
182
- 'dartEntrypoints' :
183
- dartEntrypoints.map ((String name) => < String , String > {'name' : name}),
184
145
'plugins' : dartPlugins.map ((TizenPlugin plugin) => plugin.toMap ()),
185
146
};
186
147
renderTemplateToFile (
@@ -193,7 +154,6 @@ Future<void> _generateEntrypointWithPluginRegistrant(
193
154
// ignore_for_file: avoid_classes_with_only_static_members
194
155
// ignore_for_file: directives_ordering
195
156
// ignore_for_file: lines_longer_than_80_chars
196
- // ignore_for_file: public_member_api_docs
197
157
// ignore_for_file: unnecessary_cast
198
158
199
159
import '{{mainImport}}' as entrypoint;
@@ -214,16 +174,14 @@ class _PluginRegistrant {
214
174
typedef _UnaryFunction = dynamic Function(List<String> args);
215
175
typedef _NullaryFunction = dynamic Function();
216
176
217
- {{#dartEntrypoints}}
218
177
@pragma('vm:entry-point')
219
- void {{name}} (List<String> args) {
220
- if (entrypoint.{{name}} is _UnaryFunction) {
221
- (entrypoint.{{name}} as _UnaryFunction)(args);
178
+ void main (List<String> args) {
179
+ if (entrypoint.main is _UnaryFunction) {
180
+ (entrypoint.main as _UnaryFunction)(args);
222
181
} else {
223
- (entrypoint.{{name}} as _NullaryFunction)();
182
+ (entrypoint.main as _NullaryFunction)();
224
183
}
225
184
}
226
- {{/dartEntrypoints}}
227
185
''' ,
228
186
context,
229
187
newMainFile,
0 commit comments