mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:47:03 +00:00
Move infer methods to visitor
Change-Id: Ia635e2c66c914621961f4ef165f67fb3e2759f07 Reviewed-on: https://dart-review.googlesource.com/c/78746 Reviewed-by: Kevin Millikin <kmillikin@google.com>
This commit is contained in:
parent
bd223d0ec4
commit
18110717fe
|
@ -4939,7 +4939,8 @@ Block combineStatements(Statement statement, Statement body) {
|
|||
statement.parent = body;
|
||||
return body;
|
||||
} else {
|
||||
return new Block(<Statement>[statement, body]);
|
||||
return new Block(<Statement>[statement, body])
|
||||
..fileOffset = statement.fileOffset;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
1432
pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
Normal file
1432
pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
Normal file
File diff suppressed because it is too large
Load diff
|
@ -92,10 +92,20 @@ class ThisAccessGenerator extends KernelGenerator {
|
|||
helper.lookupInstanceMember(name, isSuper: isSuper, isSetter: true);
|
||||
if (isSuper) {
|
||||
return new SuperPropertyAccessGenerator(
|
||||
helper, send.token, name, getter, setter);
|
||||
helper,
|
||||
// TODO(ahe): This is not the 'super' token.
|
||||
send.token,
|
||||
name,
|
||||
getter,
|
||||
setter);
|
||||
} else {
|
||||
return new ThisPropertyAccessGenerator(
|
||||
helper, send.token, name, getter, setter);
|
||||
helper,
|
||||
// TODO(ahe): This is not the 'this' token.
|
||||
send.token,
|
||||
name,
|
||||
getter,
|
||||
setter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,23 +16,22 @@ import 'package:kernel/ast.dart'
|
|||
TypedefType,
|
||||
VariableDeclaration;
|
||||
|
||||
import 'package:kernel/class_hierarchy.dart';
|
||||
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
|
||||
|
||||
import 'package:kernel/core_types.dart';
|
||||
import 'package:kernel/core_types.dart' show CoreTypes;
|
||||
|
||||
import '../../base/instrumentation.dart';
|
||||
import '../../base/instrumentation.dart' show Instrumentation;
|
||||
|
||||
import '../builder/library_builder.dart';
|
||||
import '../kernel/kernel_builder.dart'
|
||||
show LibraryBuilder, KernelLibraryBuilder;
|
||||
|
||||
import '../kernel/kernel_shadow_ast.dart';
|
||||
import '../kernel/kernel_shadow_ast.dart' show ShadowField;
|
||||
|
||||
import '../messages.dart' show noLength, templateCantInferTypeDueToCircularity;
|
||||
|
||||
import '../source/source_library_builder.dart';
|
||||
import 'type_inferrer.dart' show TypeInferrer, TypeInferrerImpl;
|
||||
|
||||
import 'type_inferrer.dart';
|
||||
|
||||
import 'type_schema_environment.dart';
|
||||
import 'type_schema_environment.dart' show TypeSchemaEnvironment;
|
||||
|
||||
/// Concrete class derived from [InferenceNode] to represent type inference of a
|
||||
/// field based on its initializer.
|
||||
|
@ -239,7 +238,7 @@ abstract class TypeInferenceEngine {
|
|||
/// Creates a type inferrer for use inside of a method body declared in a file
|
||||
/// with the given [uri].
|
||||
TypeInferrer createLocalTypeInferrer(
|
||||
Uri uri, InterfaceType thisType, SourceLibraryBuilder library);
|
||||
Uri uri, InterfaceType thisType, KernelLibraryBuilder library);
|
||||
|
||||
/// Creates a [TypeInferrer] object which is ready to perform type inference
|
||||
/// on the given [field].
|
||||
|
|
|
@ -89,6 +89,8 @@ import '../fasta_codes.dart'
|
|||
templateUndefinedMethod,
|
||||
templateUndefinedSetter;
|
||||
|
||||
import '../kernel/kernel_builder.dart' show KernelLibraryBuilder;
|
||||
|
||||
import '../kernel/kernel_expression_generator.dart' show buildIsNull;
|
||||
|
||||
import '../kernel/kernel_shadow_ast.dart'
|
||||
|
@ -106,8 +108,6 @@ import '../names.dart' show callName;
|
|||
|
||||
import '../problems.dart' show unexpected, unhandled;
|
||||
|
||||
import '../source/source_library_builder.dart' show SourceLibraryBuilder;
|
||||
|
||||
import '../source/source_loader.dart' show SourceLoader;
|
||||
|
||||
import 'inference_helper.dart' show InferenceHelper;
|
||||
|
@ -548,7 +548,7 @@ abstract class TypeInferrerImpl extends TypeInferrer {
|
|||
|
||||
final InterfaceType thisType;
|
||||
|
||||
final SourceLibraryBuilder library;
|
||||
final KernelLibraryBuilder library;
|
||||
|
||||
InferenceHelper helper;
|
||||
|
||||
|
|
Loading…
Reference in a new issue