mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Merge pull request #4697 from pq/analyzer_0.27.4-alpha.14
Update to latest analyzer (0.27.4-alpha.14) and misc. analysis fixes.
This commit is contained in:
commit
55b51ee549
@ -326,6 +326,9 @@ abstract class StatelessWidget extends Widget {
|
|||||||
/// provides the set of inherited widgets for this location in the tree.
|
/// provides the set of inherited widgets for this location in the tree.
|
||||||
@protected
|
@protected
|
||||||
Widget build(BuildContext context);
|
Widget build(BuildContext context);
|
||||||
|
|
||||||
|
/// Trampoline to make the [build] closure library-accessible.
|
||||||
|
WidgetBuilder get _build => build;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// StatefulWidgets provide the configuration for
|
/// StatefulWidgets provide the configuration for
|
||||||
@ -484,6 +487,9 @@ abstract class State<T extends StatefulWidget> {
|
|||||||
@protected
|
@protected
|
||||||
Widget build(BuildContext context);
|
Widget build(BuildContext context);
|
||||||
|
|
||||||
|
/// Trampoline to make the [build] closure library-accessible.
|
||||||
|
WidgetBuilder get _build => build;
|
||||||
|
|
||||||
/// Called when an Inherited widget in the ancestor chain has changed. Usually
|
/// Called when an Inherited widget in the ancestor chain has changed. Usually
|
||||||
/// there is nothing to do here; whenever this is called, build() is also
|
/// there is nothing to do here; whenever this is called, build() is also
|
||||||
/// called.
|
/// called.
|
||||||
@ -1606,7 +1612,7 @@ abstract class ComponentElement extends BuildableElement {
|
|||||||
/// Instantiation of [StatelessWidget]s.
|
/// Instantiation of [StatelessWidget]s.
|
||||||
class StatelessElement extends ComponentElement {
|
class StatelessElement extends ComponentElement {
|
||||||
StatelessElement(StatelessWidget widget) : super(widget) {
|
StatelessElement(StatelessWidget widget) : super(widget) {
|
||||||
_builder = widget.build;
|
_builder = widget._build;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -1616,14 +1622,14 @@ class StatelessElement extends ComponentElement {
|
|||||||
void update(StatelessWidget newWidget) {
|
void update(StatelessWidget newWidget) {
|
||||||
super.update(newWidget);
|
super.update(newWidget);
|
||||||
assert(widget == newWidget);
|
assert(widget == newWidget);
|
||||||
_builder = widget.build;
|
_builder = widget._build;
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
rebuild();
|
rebuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void _reassemble() {
|
void _reassemble() {
|
||||||
_builder = widget.build;
|
_builder = widget._build;
|
||||||
super._reassemble();
|
super._reassemble();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1636,7 +1642,7 @@ class StatefulElement extends ComponentElement {
|
|||||||
assert(_state._element == null);
|
assert(_state._element == null);
|
||||||
_state._element = this;
|
_state._element = this;
|
||||||
assert(_builder == _buildNothing);
|
assert(_builder == _buildNothing);
|
||||||
_builder = _state.build;
|
_builder = _state._build;
|
||||||
assert(_state._config == null);
|
assert(_state._config == null);
|
||||||
_state._config = widget;
|
_state._config = widget;
|
||||||
assert(_state._debugLifecycleState == _StateLifecycle.created);
|
assert(_state._debugLifecycleState == _StateLifecycle.created);
|
||||||
@ -1647,7 +1653,7 @@ class StatefulElement extends ComponentElement {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void _reassemble() {
|
void _reassemble() {
|
||||||
_builder = state.build;
|
_builder = state._build;
|
||||||
super._reassemble();
|
super._reassemble();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ dependencies:
|
|||||||
# We don't actually depend on 'analyzer', but 'test' and 'flutter_tools' do.
|
# We don't actually depend on 'analyzer', but 'test' and 'flutter_tools' do.
|
||||||
# We pin the version of analyzer we depend on to avoid version skew across our
|
# We pin the version of analyzer we depend on to avoid version skew across our
|
||||||
# packages.
|
# packages.
|
||||||
analyzer: 0.27.4-alpha.9
|
analyzer: 0.27.4-alpha.14
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
path: ../flutter
|
path: ../flutter
|
||||||
|
@ -90,22 +90,30 @@ class AnalysisDriver {
|
|||||||
|
|
||||||
List<UriResolver> _getResolvers(InternalAnalysisContext context,
|
List<UriResolver> _getResolvers(InternalAnalysisContext context,
|
||||||
Map<String, List<file_system.Folder>> packageMap) {
|
Map<String, List<file_system.Folder>> packageMap) {
|
||||||
DirectoryBasedDartSdk sdk = new DirectoryBasedDartSdk(new JavaFile(sdkDir));
|
|
||||||
sdk.analysisOptions = context.analysisOptions;
|
|
||||||
// TODO(pq): re-enable once we have a proper story for SDK summaries
|
// Create our list of resolvers.
|
||||||
// in the presence of embedders (https://github.com/dart-lang/sdk/issues/26467).
|
|
||||||
sdk.useSummary = false;
|
|
||||||
List<UriResolver> resolvers = <UriResolver>[];
|
List<UriResolver> resolvers = <UriResolver>[];
|
||||||
|
|
||||||
|
// Look for an embedder.
|
||||||
|
EmbedderYamlLocator locator = new EmbedderYamlLocator(packageMap);
|
||||||
|
if (locator.embedderYamls.isNotEmpty) {
|
||||||
|
// Create and configure an embedded SDK.
|
||||||
|
EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls);
|
||||||
|
// Fail fast if no URI mappings are found.
|
||||||
|
assert(sdk.libraryMap.size() > 0);
|
||||||
|
sdk.analysisOptions = context.analysisOptions;
|
||||||
|
// TODO(pq): re-enable once we have a proper story for SDK summaries
|
||||||
|
// in the presence of embedders (https://github.com/dart-lang/sdk/issues/26467).
|
||||||
|
sdk.useSummary = false;
|
||||||
|
|
||||||
EmbedderYamlLocator yamlLocator = context.embedderYamlLocator;
|
|
||||||
yamlLocator.refresh(packageMap);
|
|
||||||
|
|
||||||
EmbedderUriResolver embedderUriResolver =
|
|
||||||
new EmbedderUriResolver(yamlLocator.embedderYamls);
|
|
||||||
if (embedderUriResolver.length == 0) {
|
|
||||||
resolvers.add(new DartUriResolver(sdk));
|
resolvers.add(new DartUriResolver(sdk));
|
||||||
} else {
|
} else {
|
||||||
resolvers.add(embedderUriResolver);
|
// Fall back to a standard SDK if no embedder is found.
|
||||||
|
DirectoryBasedDartSdk sdk = new DirectoryBasedDartSdk(new JavaFile(sdkDir));
|
||||||
|
sdk.analysisOptions = context.analysisOptions;
|
||||||
|
|
||||||
|
resolvers.add(new DartUriResolver(sdk));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.packageRootPath != null) {
|
if (options.packageRootPath != null) {
|
||||||
@ -113,7 +121,7 @@ class AnalysisDriver {
|
|||||||
resolvers.add(new PackageUriResolver(<JavaFile>[packageDirectory]));
|
resolvers.add(new PackageUriResolver(<JavaFile>[packageDirectory]));
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvers.add(new FileUriResolver());
|
resolvers.add(new file_system.ResourceUriResolver(PhysicalResourceProvider.INSTANCE));
|
||||||
return resolvers;
|
return resolvers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,6 +210,7 @@ class DriverOptions extends AnalysisOptionsImpl {
|
|||||||
cacheSize = 512;
|
cacheSize = 512;
|
||||||
lint = true;
|
lint = true;
|
||||||
generateSdkErrors = false;
|
generateSdkErrors = false;
|
||||||
|
trackCacheDependencies = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The path to the dart SDK.
|
/// The path to the dart SDK.
|
||||||
|
@ -33,7 +33,7 @@ dependencies:
|
|||||||
test: 0.12.13+5
|
test: 0.12.13+5
|
||||||
|
|
||||||
# Pinned in flutter_test as well.
|
# Pinned in flutter_test as well.
|
||||||
analyzer: 0.27.4-alpha.9
|
analyzer: 0.27.4-alpha.14
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
mockito: ^0.11.0
|
mockito: ^0.11.0
|
||||||
|
Loading…
Reference in New Issue
Block a user