mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 15:21:31 +00:00
Move all data for collection for testing behind one flag
- to ensure that we don't retain unneeded data in production Change-Id: I2f702e040ed99cb8540a5b60efcf88a2c6b33af0 Reviewed-on: https://dart-review.googlesource.com/72720 Reviewed-by: Stephen Adams <sra@google.com>
This commit is contained in:
parent
1cd9cae45e
commit
e311e12bc4
|
@ -18,3 +18,5 @@ export 'diagnostics/spannable.dart'
|
|||
Spannable,
|
||||
SpannableAssertionFailure;
|
||||
export 'helpers/helpers.dart';
|
||||
|
||||
bool retainDataForTesting = false;
|
||||
|
|
|
@ -10,8 +10,7 @@ import 'package:front_end/src/fasta/scanner.dart' show StringToken;
|
|||
|
||||
import '../compiler_new.dart' as api;
|
||||
import 'backend_strategy.dart';
|
||||
import 'common/names.dart' show Selectors;
|
||||
import 'common/names.dart' show Uris;
|
||||
import 'common/names.dart' show Selectors, Uris;
|
||||
import 'common/tasks.dart' show CompilerTask, GenericTask, Measurer;
|
||||
import 'common/work.dart' show WorkItem;
|
||||
import 'common.dart';
|
||||
|
@ -332,7 +331,9 @@ abstract class Compiler {
|
|||
assert(mainFunction != null);
|
||||
|
||||
JClosedWorld closedWorld = closeResolution(mainFunction);
|
||||
backendClosedWorldForTesting = closedWorld;
|
||||
if (retainDataForTesting) {
|
||||
backendClosedWorldForTesting = closedWorld;
|
||||
}
|
||||
return closedWorld;
|
||||
}
|
||||
|
||||
|
@ -917,15 +918,13 @@ class _MapImpactCacheDeleter implements ImpactCacheDeleter {
|
|||
final Map<Entity, WorldImpact> _impactCache;
|
||||
_MapImpactCacheDeleter(this._impactCache);
|
||||
|
||||
bool retainCachesForTesting = false;
|
||||
|
||||
void uncacheWorldImpact(Entity element) {
|
||||
if (retainCachesForTesting) return;
|
||||
if (retainDataForTesting) return;
|
||||
_impactCache.remove(element);
|
||||
}
|
||||
|
||||
void emptyCache() {
|
||||
if (retainCachesForTesting) return;
|
||||
if (retainDataForTesting) return;
|
||||
_impactCache.clear();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -290,7 +290,7 @@ class ElementInfoCollector {
|
|||
|
||||
String inferredReturnType = '${_resultOfMember(function).returnType}';
|
||||
String sideEffects =
|
||||
'${compiler.globalInference.resultsForTesting.inferredData.getSideEffectsOfElement(function)}';
|
||||
'${_globalInferenceResults.inferredData.getSideEffectsOfElement(function)}';
|
||||
|
||||
int inlinedCount = compiler.dumpInfoTask.inlineCount[function];
|
||||
if (inlinedCount == null) inlinedCount = 0;
|
||||
|
|
|
@ -63,9 +63,13 @@ class EnqueueTask extends CompilerTask {
|
|||
|
||||
Enqueuer createCodegenEnqueuer(JClosedWorld closedWorld,
|
||||
GlobalTypeInferenceResults globalInferenceResults) {
|
||||
return codegenEnqueuerForTesting = compiler.backend.createCodegenEnqueuer(
|
||||
Enqueuer enqueuer = compiler.backend.createCodegenEnqueuer(
|
||||
this, compiler, closedWorld, globalInferenceResults)
|
||||
..onEmptyForTesting = compiler.onCodegenQueueEmptyForTesting;
|
||||
if (retainDataForTesting) {
|
||||
codegenEnqueuerForTesting = enqueuer;
|
||||
}
|
||||
return enqueuer;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -127,8 +127,6 @@ abstract class FrontendStrategyBase implements FrontendStrategy {
|
|||
/// Class that deletes the contents of an [WorldImpact] cache.
|
||||
// TODO(redemption): this can be deleted when we sunset the old front end.
|
||||
abstract class ImpactCacheDeleter {
|
||||
static bool retainCachesForTesting = false;
|
||||
|
||||
/// Removes the [WorldImpact] for [element] from the resolution cache. Later
|
||||
/// calls to [getWorldImpact] or [computeWorldImpact] returns an empty impact.
|
||||
void uncacheWorldImpact(Entity element);
|
||||
|
|
|
@ -251,8 +251,6 @@ abstract class InferrerEngine {
|
|||
}
|
||||
|
||||
class InferrerEngineImpl extends InferrerEngine {
|
||||
static bool retainDataForTesting = false;
|
||||
|
||||
final Map<Local, TypeInformation> defaultTypeOfParameter =
|
||||
new Map<Local, TypeInformation>();
|
||||
final WorkQueue workQueue = new WorkQueue();
|
||||
|
|
|
@ -666,7 +666,6 @@ class JavaScriptBackend {
|
|||
nativeCodegenEnqueuer));
|
||||
}
|
||||
|
||||
static bool cacheCodegenImpactForTesting = false;
|
||||
Map<MemberEntity, WorldImpact> codegenImpactsForTesting;
|
||||
|
||||
WorldImpact codegen(CodegenWorkItem work, JClosedWorld closedWorld,
|
||||
|
@ -700,7 +699,7 @@ class JavaScriptBackend {
|
|||
}
|
||||
generatedCode[element] = function;
|
||||
}
|
||||
if (cacheCodegenImpactForTesting) {
|
||||
if (retainDataForTesting) {
|
||||
codegenImpactsForTesting ??= <MemberEntity, WorldImpact>{};
|
||||
codegenImpactsForTesting[element] = work.registry.worldImpact;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
library js_backend.runtime_types;
|
||||
|
||||
import '../common.dart';
|
||||
import '../common/names.dart' show Identifiers;
|
||||
import '../common_elements.dart' show CommonElements, ElementEnvironment;
|
||||
import '../elements/entities.dart';
|
||||
|
@ -22,8 +23,6 @@ import 'backend_usage.dart';
|
|||
import 'namer.dart';
|
||||
import 'native_data.dart';
|
||||
|
||||
bool cacheRtiDataForTesting = false;
|
||||
|
||||
/// For each class, stores the possible class subtype tests that could succeed.
|
||||
abstract class TypeChecks {
|
||||
/// Get the set of checks required for class [element].
|
||||
|
@ -1737,7 +1736,7 @@ class RuntimeTypesNeedBuilderImpl extends _RuntimeTypesBase
|
|||
if (methodsNeedingTypeArguments.contains(target) ||
|
||||
localFunctionsNeedingTypeArguments.contains(target)) {
|
||||
selectorsNeedingTypeArguments.add(selector);
|
||||
if (cacheRtiDataForTesting) {
|
||||
if (retainDataForTesting) {
|
||||
selectorsNeedingTypeArgumentsForTesting ??=
|
||||
<Selector, Set<Entity>>{};
|
||||
selectorsNeedingTypeArgumentsForTesting
|
||||
|
@ -1759,7 +1758,7 @@ class RuntimeTypesNeedBuilderImpl extends _RuntimeTypesBase
|
|||
// expression.
|
||||
instantiationsNeedingTypeArguments
|
||||
.add(instantiation.typeArguments.length);
|
||||
if (cacheRtiDataForTesting) {
|
||||
if (retainDataForTesting) {
|
||||
instantiationsNeedingTypeArgumentsForTesting ??=
|
||||
<GenericInstantiation, Set<Entity>>{};
|
||||
instantiationsNeedingTypeArgumentsForTesting
|
||||
|
@ -1772,7 +1771,7 @@ class RuntimeTypesNeedBuilderImpl extends _RuntimeTypesBase
|
|||
}
|
||||
});
|
||||
|
||||
if (cacheRtiDataForTesting) {
|
||||
if (retainDataForTesting) {
|
||||
typeVariableTestsForTesting = typeVariableTests;
|
||||
}
|
||||
|
||||
|
@ -1890,7 +1889,7 @@ class RuntimeTypesImpl extends _RuntimeTypesBase
|
|||
Set<DartType> implicitIsChecks = typeVariableTests.implicitIsChecks;
|
||||
|
||||
Map<ClassEntity, ClassUse> classUseMap = <ClassEntity, ClassUse>{};
|
||||
if (cacheRtiDataForTesting) {
|
||||
if (retainDataForTesting) {
|
||||
classUseMapForTesting = classUseMap;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@ import 'package:js_runtime/shared/embedded_names.dart'
|
|||
|
||||
import '../../../compiler_new.dart';
|
||||
import '../../common.dart';
|
||||
import '../../common_elements.dart' show CommonElements, ElementEnvironment;
|
||||
import '../../compiler.dart' show Compiler;
|
||||
import '../../constants/values.dart';
|
||||
import '../../common_elements.dart' show CommonElements, ElementEnvironment;
|
||||
import '../../deferred_load.dart' show OutputUnit, OutputUnitData;
|
||||
import '../../elements/entities.dart';
|
||||
import '../../hash/sha1.dart' show Hasher;
|
||||
|
@ -1351,8 +1351,11 @@ class Emitter extends js_emitter.EmitterBase {
|
|||
}
|
||||
|
||||
int emitProgram(ProgramBuilder programBuilder) {
|
||||
Program program = programForTesting =
|
||||
Program program =
|
||||
programBuilder.buildProgram(storeFunctionTypesInMetadata: true);
|
||||
if (retainDataForTesting) {
|
||||
programForTesting = program;
|
||||
}
|
||||
|
||||
outputStaticNonFinalFieldLists =
|
||||
programBuilder.collector.outputStaticNonFinalFieldLists;
|
||||
|
|
|
@ -61,7 +61,10 @@ class Emitter extends emitterTask.EmitterBase {
|
|||
|
||||
@override
|
||||
int emitProgram(ProgramBuilder programBuilder) {
|
||||
Program program = programForTesting = programBuilder.buildProgram();
|
||||
Program program = programBuilder.buildProgram();
|
||||
if (retainDataForTesting) {
|
||||
programForTesting = program;
|
||||
}
|
||||
return _emitter.emitProgram(program);
|
||||
}
|
||||
|
||||
|
|
|
@ -2126,32 +2126,6 @@ class KClosedWorldImpl extends ClosedWorldRtiNeedMixin implements KClosedWorld {
|
|||
}
|
||||
}
|
||||
|
||||
// Interface for testing equivalence of Kernel-based entities.
|
||||
class WorldDeconstructionForTesting {
|
||||
final KernelToElementMapBase elementMap;
|
||||
|
||||
WorldDeconstructionForTesting(this.elementMap);
|
||||
|
||||
IndexedClass getSuperclassForClass(IndexedClass cls) {
|
||||
ClassEnv env = elementMap._classes.getEnv(cls);
|
||||
ir.Supertype supertype = env.cls.supertype;
|
||||
if (supertype == null) return null;
|
||||
return elementMap.getClass(supertype.classNode);
|
||||
}
|
||||
|
||||
bool isUnnamedMixinApplication(IndexedClass cls) {
|
||||
return elementMap._isUnnamedMixinApplication(cls);
|
||||
}
|
||||
|
||||
InterfaceType getMixinTypeForClass(IndexedClass cls) {
|
||||
ClassEnv env = elementMap._classes.getEnv(cls);
|
||||
ir.Supertype mixedInType = env.cls.mixedInType;
|
||||
if (mixedInType == null) return null;
|
||||
return elementMap.createInterfaceType(
|
||||
mixedInType.classNode, mixedInType.typeArguments);
|
||||
}
|
||||
}
|
||||
|
||||
class KernelNativeMemberResolver extends NativeMemberResolverBase {
|
||||
final KernelToElementMapForImpactImpl elementMap;
|
||||
final NativeBasicData nativeBasicData;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
library types;
|
||||
|
||||
import 'package:kernel/ast.dart' as ir;
|
||||
import '../common.dart' show failedAt;
|
||||
import '../common.dart' show failedAt, retainDataForTesting;
|
||||
import '../common/names.dart';
|
||||
import '../common/tasks.dart' show CompilerTask;
|
||||
import '../compiler.dart' show Compiler;
|
||||
|
@ -149,7 +149,9 @@ class GlobalTypeInferenceTask extends CompilerTask {
|
|||
results = typesInferrerInternal.analyzeMain(mainElement);
|
||||
}
|
||||
closedWorld.noSuchMethodData.categorizeComplexImplementations(results);
|
||||
resultsForTesting = results;
|
||||
if (retainDataForTesting) {
|
||||
resultsForTesting = results;
|
||||
}
|
||||
return results;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -985,7 +985,7 @@ class ResolutionWorldBuilderImpl extends WorldBuilderBase
|
|||
"ClassHierarchyNode/ClassSet mismatch: "
|
||||
"${_classHierarchyBuilder.classHierarchyNodes} vs "
|
||||
"${_classHierarchyBuilder.classSets}");
|
||||
return _closedWorldCache = new KClosedWorldImpl(_elementMap,
|
||||
KClosedWorld closedWorld = new KClosedWorldImpl(_elementMap,
|
||||
options: _options,
|
||||
elementEnvironment: _elementEnvironment,
|
||||
dartTypes: _dartTypes,
|
||||
|
@ -1006,6 +1006,10 @@ class ResolutionWorldBuilderImpl extends WorldBuilderBase
|
|||
typesImplementedBySubclasses: typesImplementedBySubclasses,
|
||||
classHierarchyNodes: _classHierarchyBuilder.classHierarchyNodes,
|
||||
classSets: _classHierarchyBuilder.classSets);
|
||||
if (retainDataForTesting) {
|
||||
_closedWorldCache = closedWorld;
|
||||
}
|
||||
return closedWorld;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
// Test that dart2js gvns dynamic getters that don't have side
|
||||
// effects.
|
||||
|
||||
import 'package:expect/expect.dart';
|
||||
import 'package:async_helper/async_helper.dart';
|
||||
import '../helpers/compiler_helper.dart';
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/elements/names.dart';
|
||||
import 'package:compiler/src/universe/selector.dart' show Selector;
|
||||
import 'package:compiler/src/world.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
import '../helpers/compiler_helper.dart';
|
||||
import '../helpers/memory_compiler.dart';
|
||||
|
||||
const String TEST = r"""
|
||||
|
|
|
@ -12,42 +12,39 @@ import 'package:expect/expect.dart';
|
|||
import '../helpers/memory_compiler.dart';
|
||||
|
||||
void main() {
|
||||
deferredTest1();
|
||||
deferredTest2();
|
||||
}
|
||||
|
||||
void deferredTest1() {
|
||||
asyncTest(() async {
|
||||
CompilationResult result = await runCompiler(memorySourceFiles: TEST1);
|
||||
Compiler compiler = result.compiler;
|
||||
var outputUnitForMember =
|
||||
compiler.backend.outputUnitData.outputUnitForMember;
|
||||
var mainOutputUnit = compiler.backend.outputUnitData.mainOutputUnit;
|
||||
var env = compiler.backendClosedWorldForTesting.elementEnvironment;
|
||||
lookupLibrary(name) => env.lookupLibrary(Uri.parse(name));
|
||||
dynamic lib1 = lookupLibrary("memory:lib1.dart");
|
||||
dynamic lib2 = lookupLibrary("memory:lib2.dart");
|
||||
env.lookupLibraryMember(lib1, "foo1");
|
||||
var foo2 = env.lookupLibraryMember(lib2, "foo2");
|
||||
|
||||
Expect.notEquals(mainOutputUnit, outputUnitForMember(foo2));
|
||||
await deferredTest1();
|
||||
await deferredTest2();
|
||||
});
|
||||
}
|
||||
|
||||
void deferredTest2() {
|
||||
asyncTest(() async {
|
||||
CompilationResult result = await runCompiler(memorySourceFiles: TEST2);
|
||||
Compiler compiler = result.compiler;
|
||||
var outputUnitForClass = compiler.backend.outputUnitData.outputUnitForClass;
|
||||
deferredTest1() async {
|
||||
CompilationResult result = await runCompiler(memorySourceFiles: TEST1);
|
||||
Compiler compiler = result.compiler;
|
||||
var outputUnitForMember = compiler.backend.outputUnitData.outputUnitForMember;
|
||||
var mainOutputUnit = compiler.backend.outputUnitData.mainOutputUnit;
|
||||
var env = compiler.backendClosedWorldForTesting.elementEnvironment;
|
||||
lookupLibrary(name) => env.lookupLibrary(Uri.parse(name));
|
||||
dynamic lib1 = lookupLibrary("memory:lib1.dart");
|
||||
dynamic lib2 = lookupLibrary("memory:lib2.dart");
|
||||
env.lookupLibraryMember(lib1, "foo1");
|
||||
var foo2 = env.lookupLibraryMember(lib2, "foo2");
|
||||
|
||||
var mainOutputUnit = compiler.backend.outputUnitData.mainOutputUnit;
|
||||
var env = compiler.backendClosedWorldForTesting.elementEnvironment;
|
||||
lookupLibrary(name) => env.lookupLibrary(Uri.parse(name));
|
||||
dynamic shared = lookupLibrary("memory:shared.dart");
|
||||
var a = env.lookupClass(shared, "A");
|
||||
Expect.notEquals(mainOutputUnit, outputUnitForMember(foo2));
|
||||
}
|
||||
|
||||
Expect.equals(mainOutputUnit, outputUnitForClass(a));
|
||||
});
|
||||
deferredTest2() async {
|
||||
CompilationResult result = await runCompiler(memorySourceFiles: TEST2);
|
||||
Compiler compiler = result.compiler;
|
||||
var outputUnitForClass = compiler.backend.outputUnitData.outputUnitForClass;
|
||||
|
||||
var mainOutputUnit = compiler.backend.outputUnitData.mainOutputUnit;
|
||||
var env = compiler.backendClosedWorldForTesting.elementEnvironment;
|
||||
lookupLibrary(name) => env.lookupLibrary(Uri.parse(name));
|
||||
dynamic shared = lookupLibrary("memory:shared.dart");
|
||||
var a = env.lookupClass(shared, "A");
|
||||
|
||||
Expect.equals(mainOutputUnit, outputUnitForClass(a));
|
||||
}
|
||||
|
||||
// lib1 imports lib2 deferred. But mainlib never uses DeferredLibrary.
|
||||
|
|
|
@ -5,32 +5,22 @@
|
|||
library compiler_helper;
|
||||
|
||||
import 'dart:async';
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
|
||||
import 'package:compiler/src/common_elements.dart';
|
||||
|
||||
import 'package:compiler/src/elements/entities.dart';
|
||||
|
||||
import 'package:compiler/src/js_backend/js_backend.dart' as js;
|
||||
|
||||
import 'package:compiler/src/commandline_options.dart';
|
||||
import 'package:compiler/src/world.dart';
|
||||
import 'package:compiler/src/compiler.dart' show Compiler;
|
||||
import 'package:expect/expect.dart';
|
||||
import 'package:front_end/src/fasta/util/link.dart' show Link;
|
||||
import 'memory_compiler.dart';
|
||||
import 'output_collector.dart';
|
||||
|
||||
export 'package:compiler/src/diagnostics/messages.dart';
|
||||
export 'package:compiler/src/diagnostics/source_span.dart';
|
||||
export 'package:compiler/src/diagnostics/spannable.dart';
|
||||
export 'package:compiler/src/util/util.dart';
|
||||
|
||||
import 'package:compiler/src/world.dart';
|
||||
|
||||
import 'package:compiler/src/compiler.dart' show Compiler;
|
||||
|
||||
import 'package:front_end/src/fasta/util/link.dart' show Link;
|
||||
|
||||
import 'memory_compiler.dart';
|
||||
|
||||
import 'output_collector.dart';
|
||||
export 'output_collector.dart';
|
||||
|
||||
/// Compile [code] and returns either the code for [methodName] or, if
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'dart:async';
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
import 'package:compiler/src/common.dart';
|
||||
import 'package:compiler/src/dart2js.dart' as dart2js;
|
||||
import 'package:compiler/src/filenames.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
|
@ -38,6 +39,7 @@ Future<D8Result> runWithD8(
|
|||
String expectedOutput,
|
||||
bool printJs: false,
|
||||
bool printSteps: false}) async {
|
||||
retainDataForTesting = true;
|
||||
entryPoint ??= Uri.parse('memory:main.dart');
|
||||
Uri mainFile =
|
||||
await createTemp(entryPoint, memorySourceFiles, printSteps: printSteps);
|
||||
|
|
|
@ -14,6 +14,7 @@ import 'package:compiler/compiler_new.dart'
|
|||
CompilerOutput,
|
||||
Diagnostic,
|
||||
PackagesDiscoveryProvider;
|
||||
import 'package:compiler/src/common.dart';
|
||||
import 'package:compiler/src/diagnostics/messages.dart' show Message;
|
||||
import 'package:compiler/src/null_compiler_output.dart' show NullCompilerOutput;
|
||||
import 'package:compiler/src/options.dart' show CompilerOptions;
|
||||
|
@ -113,6 +114,7 @@ CompilerImpl compilerFor(
|
|||
Uri packageRoot,
|
||||
Uri packageConfig,
|
||||
PackagesDiscoveryProvider packagesDiscoveryProvider}) {
|
||||
retainDataForTesting = true;
|
||||
Uri libraryRoot = Uri.base.resolve('sdk/');
|
||||
Uri platformBinaries = computePlatformBinariesLocation();
|
||||
|
||||
|
|
|
@ -8,10 +8,10 @@ import 'dart:async';
|
|||
import 'package:expect/expect.dart';
|
||||
import 'package:compiler/src/common_elements.dart';
|
||||
import 'package:compiler/src/commandline_options.dart';
|
||||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/elements/types.dart';
|
||||
import 'package:compiler/src/compiler.dart' show Compiler;
|
||||
import 'package:compiler/src/elements/entities.dart';
|
||||
import 'package:compiler/src/frontend_strategy.dart';
|
||||
import 'package:compiler/src/kernel/kernel_strategy.dart';
|
||||
import 'package:compiler/src/world.dart' show JClosedWorld, KClosedWorld;
|
||||
import 'memory_compiler.dart' as memory;
|
||||
|
@ -30,21 +30,17 @@ class TypeEnvironment {
|
|||
bool testBackendWorld: false,
|
||||
List<String> options: const <String>[],
|
||||
Map<String, String> fieldTypeMap: const <String, String>{}}) async {
|
||||
Uri uri;
|
||||
Compiler compiler;
|
||||
memory.DiagnosticCollector collector;
|
||||
collector = new memory.DiagnosticCollector();
|
||||
uri = Uri.parse('memory:main.dart');
|
||||
memory.DiagnosticCollector collector = new memory.DiagnosticCollector();
|
||||
Uri uri = Uri.parse('memory:main.dart');
|
||||
memory.CompilationResult result = await memory.runCompiler(
|
||||
entryPoint: uri,
|
||||
memorySourceFiles: {'main.dart': source},
|
||||
options: [Flags.disableTypeInference]..addAll(options),
|
||||
diagnosticHandler: collector,
|
||||
beforeRun: (compiler) {
|
||||
ImpactCacheDeleter.retainCachesForTesting = true;
|
||||
compiler.stopAfterTypeInference = true;
|
||||
});
|
||||
compiler = result.compiler;
|
||||
Compiler compiler = result.compiler;
|
||||
if (expectNoErrors || expectNoWarningsOrErrors) {
|
||||
var errors = collector.errors;
|
||||
Expect.isTrue(errors.isEmpty, 'Unexpected errors: ${errors}');
|
||||
|
|
|
@ -7,7 +7,6 @@ import 'package:async_helper/async_helper.dart';
|
|||
import 'package:compiler/src/common/resolution.dart';
|
||||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/elements/entities.dart';
|
||||
import 'package:compiler/src/frontend_strategy.dart';
|
||||
import 'package:compiler/src/kernel/element_map.dart';
|
||||
import 'package:compiler/src/kernel/kernel_strategy.dart';
|
||||
import 'package:compiler/src/universe/feature.dart';
|
||||
|
@ -35,11 +34,6 @@ class Tags {
|
|||
class ImpactDataComputer extends DataComputer {
|
||||
const ImpactDataComputer();
|
||||
|
||||
@override
|
||||
void setup() {
|
||||
ImpactCacheDeleter.retainCachesForTesting = true;
|
||||
}
|
||||
|
||||
@override
|
||||
void computeMemberData(
|
||||
Compiler compiler, MemberEntity member, Map<Id, ActualData> actualMap,
|
||||
|
|
|
@ -9,7 +9,6 @@ import 'package:compiler/src/common.dart';
|
|||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
|
||||
import 'package:compiler/src/elements/entities.dart';
|
||||
import 'package:compiler/src/inferrer/inferrer_engine.dart';
|
||||
import 'package:compiler/src/inferrer/type_graph_inferrer.dart';
|
||||
import 'package:compiler/src/kernel/element_map.dart';
|
||||
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
|
||||
|
@ -29,11 +28,6 @@ main(List<String> args) {
|
|||
class CallersDataComputer extends DataComputer {
|
||||
const CallersDataComputer();
|
||||
|
||||
@override
|
||||
void setup() {
|
||||
InferrerEngineImpl.retainDataForTesting = true;
|
||||
}
|
||||
|
||||
@override
|
||||
void computeMemberData(
|
||||
Compiler compiler, MemberEntity member, Map<Id, ActualData> actualMap,
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:async_helper/async_helper.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
import 'package:compiler/src/inferrer/typemasks/masks.dart';
|
||||
|
||||
import 'package:compiler/src/common.dart';
|
||||
import 'package:compiler/src/common_elements.dart';
|
||||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/inferrer/typemasks/masks.dart';
|
||||
import 'package:compiler/src/world.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
import '../helpers/memory_compiler.dart';
|
||||
|
||||
const String CODE = """
|
||||
|
@ -22,6 +22,8 @@ main() {
|
|||
""";
|
||||
|
||||
main() {
|
||||
retainDataForTesting = true;
|
||||
|
||||
runTests() async {
|
||||
CompilationResult result =
|
||||
await runCompiler(memorySourceFiles: {'main.dart': CODE});
|
||||
|
|
|
@ -29,11 +29,6 @@ main(List<String> args) {
|
|||
class InliningDataComputer extends DataComputer {
|
||||
const InliningDataComputer();
|
||||
|
||||
@override
|
||||
void setup() {
|
||||
JavaScriptBackend.cacheCodegenImpactForTesting = true;
|
||||
}
|
||||
|
||||
/// Compute type inference data for [member] from kernel based inference.
|
||||
///
|
||||
/// Fills [actualMap] with the data.
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
import 'package:expect/expect.dart';
|
||||
import 'package:async_helper/async_helper.dart';
|
||||
import 'package:compiler/src/common.dart';
|
||||
import 'package:compiler/src/compiler.dart';
|
||||
import 'package:compiler/src/common_elements.dart';
|
||||
import 'package:compiler/src/elements/entities.dart';
|
||||
import 'package:compiler/src/frontend_strategy.dart';
|
||||
import 'package:compiler/src/world.dart';
|
||||
import 'package:compiler/src/universe/use.dart';
|
||||
import 'package:compiler/src/universe/world_impact.dart';
|
||||
|
@ -71,7 +71,7 @@ main() {
|
|||
'method13': new Impact(implicitCasts: ['int'], parameterChecks: ['String']),
|
||||
};
|
||||
|
||||
ImpactCacheDeleter.retainCachesForTesting = true;
|
||||
retainDataForTesting = true;
|
||||
CompilationResult result =
|
||||
await runCompiler(memorySourceFiles: {'main.dart': source});
|
||||
Expect.isTrue(result.isSuccess);
|
||||
|
|
|
@ -20,7 +20,6 @@ import '../helpers/program_lookup.dart';
|
|||
|
||||
main(List<String> args) {
|
||||
asyncTest(() async {
|
||||
cacheRtiDataForTesting = true;
|
||||
Directory dataDir =
|
||||
new Directory.fromUri(Platform.script.resolve('emission'));
|
||||
await checkTests(dataDir, const RtiEmissionDataComputer(),
|
||||
|
@ -90,11 +89,6 @@ abstract class ComputeValueMixin {
|
|||
class RtiEmissionDataComputer extends DataComputer {
|
||||
const RtiEmissionDataComputer();
|
||||
|
||||
@override
|
||||
void setup() {
|
||||
cacheRtiDataForTesting = true;
|
||||
}
|
||||
|
||||
@override
|
||||
bool get computesClassData => true;
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ main(List<String> args) {
|
|||
}
|
||||
|
||||
runTests(List<String> args, [int shardIndex]) {
|
||||
cacheRtiDataForTesting = true;
|
||||
asyncTest(() async {
|
||||
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
|
||||
await checkTests(dataDir, const RtiNeedDataComputer(),
|
||||
|
@ -232,11 +231,6 @@ class FindTypeVisitor extends BaseDartTypeVisitor<bool, Null> {
|
|||
class RtiNeedDataComputer extends DataComputer {
|
||||
const RtiNeedDataComputer();
|
||||
|
||||
@override
|
||||
void setup() {
|
||||
cacheRtiDataForTesting = true;
|
||||
}
|
||||
|
||||
@override
|
||||
bool get computesClassData => true;
|
||||
|
||||
|
|
Loading…
Reference in a new issue