| Index: pkg/analyzer/lib/src/generated/resolver.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
|
| index 7f9657f9c18b210c6eb2e100cfe8692f8ffa8e63..8f0038abd93fdb634df6c3596d64bb03e0241e69 100644
|
| --- a/pkg/analyzer/lib/src/generated/resolver.dart
|
| +++ b/pkg/analyzer/lib/src/generated/resolver.dart
|
| @@ -6301,8 +6301,11 @@ class ResolverVisitor extends ScopedVisitor {
|
| }
|
| // Clone the ASTs for default formal parameters, so that we can use them
|
| // during constant evaluation.
|
| - (element as ConstVariableElement).constantInitializer =
|
| - new ConstantAstCloner().cloneNode(node.defaultValue);
|
| + if (!LibraryElementImpl.hasResolutionCapability(
|
| + definingLibrary, LibraryResolutionCapability.constantExpressions)) {
|
| + (element as ConstVariableElement).constantInitializer =
|
| + new ConstantAstCloner().cloneNode(node.defaultValue);
|
| + }
|
| return null;
|
| }
|
|
|
| @@ -9190,15 +9193,20 @@ class TypeParameterBoundsResolver {
|
| for (TypeParameter typeParameter in typeParameters.typeParameters) {
|
| TypeName bound = typeParameter.bound;
|
| if (bound != null) {
|
| - libraryScope ??= new LibraryScope(library, errorListener);
|
| - typeParametersScope ??= createTypeParametersScope();
|
| - typeNameResolver ??= new TypeNameResolver(new TypeSystemImpl(),
|
| - typeProvider, library, source, errorListener);
|
| - typeNameResolver.nameScope = typeParametersScope;
|
| - _resolveTypeName(bound);
|
| Element typeParameterElement = typeParameter.name.staticElement;
|
| if (typeParameterElement is TypeParameterElementImpl) {
|
| - typeParameterElement.bound = bound.type;
|
| + if (LibraryElementImpl.hasResolutionCapability(
|
| + library, LibraryResolutionCapability.resolvedTypeNames)) {
|
| + bound.type = typeParameterElement.bound;
|
| + } else {
|
| + libraryScope ??= new LibraryScope(library, errorListener);
|
| + typeParametersScope ??= createTypeParametersScope();
|
| + typeNameResolver ??= new TypeNameResolver(new TypeSystemImpl(),
|
| + typeProvider, library, source, errorListener);
|
| + typeNameResolver.nameScope = typeParametersScope;
|
| + _resolveTypeName(bound);
|
| + typeParameterElement.bound = bound.type;
|
| + }
|
| }
|
| }
|
| }
|
|
|