Commit Graph

35087 Commits

Author SHA1 Message Date
Danny Tuppeny 069a2f83d9 [Analyzer] Add support to LSP server for updating imports on file renames
Fixes https://github.com/Dart-Code/Dart-Code/issues/2761.

Change-Id: I9e4779760a02bc91850c45aa0d0bf261ef922222
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175485
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 17:06:03 +00:00
Danny Tuppeny 5d2905e8cb [Analyzer] Add a setting to enable sending TODOs as LSP diagnostics
Fixes https://github.com/Dart-Code/Dart-Code/issues/3010.

Change-Id: Id504f46a0c0ff6dc6eb4005e3779714081df8fd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176085
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 17:05:24 +00:00
Konstantin Shcheglov 98d5e770e4 Fixes for review comments after _fe_analyzer_shared migration
Change-Id: I77b139caa828d57fa16fd78e1f3ae2824974396c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176020
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 16:57:58 +00:00
Konstantin Shcheglov 44b8d530a2 Remove 'template' from Code.
Change-Id: I1937e22ba22ba7a0ae809d777f2e61b046519fd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176021
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 16:57:18 +00:00
Daco Harkes 3e7cda8a4e [vm/ffi] Support passing structs by value
This CL adds passing structs by value in FFI trampolines.
Nested structs and inline arrays are future work.
C defines passing empty structs as undefined behavior, so that is not
supported in this CL.

Suggested review order:
1) commit message
2) ffi/marshaller (decisions for what is done in IL and what in MC)
3) frontend/kernel_to_il (IL construction)
4) backend/il (MC generation from IL)
5) rest in VM

Overall architecture is that structs are split up into word-size chunks
in IL when this is possible: 1 definition in IL per chunk, 1 Location in
IL per chunk, and 1 NativeLocation for the backend per chunk.
In some cases it is not possible or less convenient to split into
chunks. In these cases TypedDataBase objects are stored into and loaded
from directly in machine code.
The various cases:
- FFI call arguments which are not passed as pointers: pass individual
  chunks to FFI call which already have the right location.
- FFI call arguments which are passed as pointers: Pass in TypedDataBase
  to FFI call, allocate space on the stack, and make a copy on the stack
  and pass the copies' address to the callee.
- FFI call return value: pass in TypedData to FFI call, and copy result
  in machine code.
- FFI callback arguments which are not passed as pointers: IL definition
  for each chunk, and populate a new TypedData with those chunks.
- FFI callback arguments which are passed as pointer: IL definition for
  the pointer, and copying of contents in IL.
- FFI return value when location is pointer: Copy data to callee result
  location in IL.
- FFI return value when location is not a pointer: Copy data in machine
  code to the right registers.

Some other notes about the implementation:
- Due to Store/LoadIndexed loading doubles from float arrays, we use
  a int32 instead and use the BitCastInstr.
- Linux ia32 uses `ret 4` when returning structs by value. This requires
  special casing in the FFI callback trampolines to either use `ret` or
  `ret 4` when returning.
- The 1 IL definition, 1 Location, and 1 NativeLocation approach does
  not remove the need for special casing PairLocations in the machine
  code generation because they are 1 Location belonging to 1 definition.

Because of the amount of corner cases in the calling conventions that
need to be covered, the tests are generated, rather than hand-written.

ABIs tested on CQ: x64 (Linux, MacOS, Windows), ia32 (Linux, Windows),
arm (Android softFP, Linux hardFP), arm64 Android.
ABIs tested locally through Flutter: ia32 Android (emulator), x64 iOS
(simulator), arm64 iOS.
ABIs not tested: arm iOS.
TEST=runtime/bin/ffi_test/ffi_test_functions_generated.cc
TEST=runtime/bin/ffi_test/ffi_test_functions.cc
TEST=tests/{ffi,ffi_2}/function_structs_by_value_generated_test.dart
TEST=tests/{ffi,ffi_2}/function_callbacks_structs_by_value_generated_tes
TEST=tests/{ffi,ffi_2}/function_callbacks_structs_by_value_test.dart
TEST=tests/{ffi,ffi_2}/vmspecific_static_checks_test.dart

Closes https://github.com/dart-lang/sdk/issues/36730.

Change-Id: I474d3a4ee1faadbe767ddadd1b696e24d8dc364c
Cq-Include-Trybots: luci.dart.try:dart-sdk-linux-try,dart-sdk-mac-try,dart-sdk-win-try,vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-mac-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-linux-debug-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-debug-ia32-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-debug-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try,vm-kernel-precomp-android-release-arm_x64-try,analyzer-analysis-server-linux-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140290
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-12-14 16:22:48 +00:00
Danny Tuppeny f6c6ea5373 [Analyzer] Update to final published version of v3.16.0 of LSP spec
Change-Id: I290b462352fc72b58b2f8f5f8b85464257017b7a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176080
Auto-Submit: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 16:03:59 +00:00
Paul Berry 5780cacbdb Don't pass null to fasta.Parser.
Fixes null safety errors arising from the migration of _fe_analyzer_shared.

Change-Id: I7da6b7f2d7c23d5d8f6ed120e03aed754aff5b82
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176061
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Ivan Inozemtsev <iinozemtsev@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Ivan Inozemtsev <iinozemtsev@google.com>
2020-12-14 15:55:39 +00:00
Johnni Winther 5dbb6e245b [kernel,cfe,ddc] Add new method invocation node to package:kernel
This adds
* InstanceInvocation, DynamicInvocation, FunctionInvocation, and
   LocalFunctionInvocation, EqualsCall, and EqualsNull as a future
   replacement for MethodInvocation.
* InstanceGet, DynamicGet, InstanceTearOff, and FunctionTearOff as a
   future replacement for PropertyGet
* InstanceSet and DynamicSet as a future replacement of PropertySet
* StaticTearOff as an addition to StaticGet

TEST=pkg/front_end/test/binary_md_vm_tags_and_version_test.dart

This CL combines
* https://dart-review.googlesource.com/c/sdk/+/171729
* https://dart-review.googlesource.com/c/sdk/+/172649
* https://dart-review.googlesource.com/c/sdk/+/172650
* https://dart-review.googlesource.com/c/sdk/+/172651

using the initial encoding fo EqualsCall and EqualsNull

Change-Id: I98e020b5f2b405a812663bdcd2c05aba8efa74c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175480
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-12-14 10:55:48 +00:00
Konstantin Shcheglov 72b0d2a297 Terminate null shorting for FunctionExpressionInvocation.
FAILURE: (:s=0?.1(I
['package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart': Failed assertion: line 2785 pos 12: '_stack.isEmpty': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      _FlowAnalysisImpl.finish (package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart:2785:12)
#3      FlowAnalysisHelper.topLevelDeclaration_exit (package:analyzer/src/dart/resolver/flow_analysis_visitor.dart:224:10)
#4      AstResolver.resolve (package:analyzer/src/summary2/ast_resolver.dart:88:21)
#5      _VariableInferenceNode._resolveInitializer (package:analyzer/src/summary2/top_level_inference.dart:466:17)
#6      _VariableInferenceNode.computeDependencies (package:analyzer/src/summary2/top_level_inference.dart:393:5)
#7      Node.getDependencies (package:analyzer/src/summary/link.dart:148:40)
#8      DependencyWalker.walk.strongConnect (package:analyzer/src/summary/link.dart:53:40)
#9      DependencyWalker.walk (package:analyzer/src/summary/link.dart:119:18)
#10     _InferenceWalker.walkNodes (package:analyzer/src/summary2/top_level_inference.dart:254:9)
#11     _InitializerInference.perform (package:analyzer/src/summary2/top_level_inference.dart:287:13)
#12     TopLevelInference.infer (package:analyzer/src/summary2/top_level_inference.dart:111:26)
#13     Linker._performTopLevelInference (package:analyzer/src/summary2/link.dart:183:29)
#14     Linker._buildOutlines (package:analyzer/src/summary2/link.dart:93:5)
#15     Linker.link (package:analyzer/src/summary2/link.dart:76:5)
#16     link (package:analyzer/src/summary2/link.dart:33:10)
#17     LibraryContext.load2.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:227:24)
#18     LibraryContext.load2.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:258:17)
#19     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#20     LibraryContext.load2 (package:analyzer/src/dart/analysis/library_context.dart:256:12)
#21     new LibraryContext (package:analyzer/src/dart/analysis/library_context.dart:78:5)
#22     AnalysisDriver._createLibraryContext.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1538:27)
#23     _rootRun (dart:async/zone.dart:1186:13)
#24     _CustomZone.run (dart:async/zone.dart:1090:19)
#25     _runZoned (dart:async/zone.dart:1626:10)
#26     runZoned (dart:async/zone.dart:1546:10)
#27     NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#28     AnalysisDriver._createLibraryContext (package:analyzer/src/dart/analysis/driver.dart:1536:33)
#29     AnalysisDriver._computeResolvedLibrary2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1402:28)


Change-Id: I6b91c6bd89d6e0430a36ded992d8dca82bfedbff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175961
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 08:56:08 +00:00
Paul Berry 3ee471e490 Flow analysis: additional tests for promotion based on initializers
Change-Id: I19b16646097c4638ce44c5ceb3c700edcaa7a23a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175980
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-12-14 06:50:08 +00:00
Konstantin Shcheglov 57fa20a8a5 Fix crash for no flow in annotation.
FAILURE: class=class<@((){x:
[NoSuchMethodError: The method 'labeledStatement_begin' was called on null.
Receiver: null
Tried calling: labeledStatement_begin(Instance of 'LabeledStatementImpl'), #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      FlowAnalysisHelper.labeledStatement_enter (package:analyzer/src/dart/resolver/flow_analysis_visitor.dart:196:10)
#2      ResolverVisitor.visitLabeledStatement (package:analyzer/src/generated/resolver.dart:1636:20)
#3      LabeledStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:6520:49)
#4      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#5      BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1087:17)
#6      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#7      UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:3143:31)
#8      ScopedVisitor.visitBlock.<anonymous closure> (package:analyzer/src/generated/resolver.dart:2473:13)
#9      ScopedVisitor._withDeclaredLocals (package:analyzer/src/generated/resolver.dart:3067:8)
#10     ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:2472:5)
#11     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#12     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1042:13)
#13     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#14     UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:3146:55)
#15     ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:2482:13)
#16     ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:957:13)
#17     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#18     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5010:12)
#19     FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#20     ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1460:37)
#21     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#22     ResolverVisitor.visitArgumentList (package:analyzer/src/generated/resolver.dart:887:20)
#23     ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:355:49)
#24     AnnotationResolver.resolve (package:analyzer/src/dart/resolver/annotation_resolver.dart:35:21)
#25     ResolverVisitor.visitAnnotation (package:analyzer/src/generated/resolver.dart:823:30)
#26     AnnotationImpl.accept (package:analyzer/src/dart/ast/ast.dart:280:49)
#27     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#28     AnnotatedNodeImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:148:17)
#29     TypeParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10298:11)
#30     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#31     UnifyingAstVisitor.visitTypeParameter (package:analyzer/dart/ast/visitor.dart:3475:47)
#32     TypeParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:10294:49)
#33     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#34     TypeParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10346:21)
#35     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#36     UnifyingAstVisitor.visitTypeParameterList (package:analyzer/dart/ast/visitor.dart:3478:55)
#37     TypeParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:10342:49)
#38     ScopedVisitor.visitClassDeclarationInScope (package:analyzer/src/generated/resolver.dart:2533:26)
#39     ScopedVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:2521:7)
#40     ResolverVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:1015:13)
#41     ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1536:49)
#42     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1091:23)
#43     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#44     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)
#45     LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:139:7)

Change-Id: I13a10d2c127528aa9166e82a5ae535ddbbb8a022
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175943
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 05:58:23 +00:00
Konstantin Shcheglov 05cce14437 Write markers into resolution stream.
Change-Id: I84092ac81b67637d2975ae331034207027740191
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175960
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 05:50:57 +00:00
Konstantin Shcheglov 34939ac7b8 Resolve default values of nested parameters of function typed formal parameters.
FAILURE: /((=#is!?}=
[NoSuchMethodError: The getter 'nullabilitySuffix' was called on null.
Receiver: null
Tried calling: nullabilitySuffix, #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:50:29)
#2      TypeSystemImpl.isSubtypeOf2 (package:analyzer/src/dart/element/type_system.dart:1131:27)
#3      DartObjectImpl.hasType (package:analyzer/src/dart/constant/value.dart:487:41)
#4      DartObjectComputer.typeTest (package:analyzer/src/dart/constant/evaluation.dart:2159:44)
#5      ConstantVisitor.visitIsExpression (package:analyzer/src/dart/constant/evaluation.dart:1230:34)
#6      IsExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:6463:49)
#7      ConstantVisitor.visitConditionalExpression (package:analyzer/src/dart/constant/evaluation.dart:1104:48)
#8      ConditionalExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:2265:15)
#9      ConstantEvaluationEngine.computeConstantValue (package:analyzer/src/dart/constant/evaluation.dart:159:16)
#10     _ConstantWalker.evaluate (package:analyzer/src/dart/constant/compute.dart:57:32)
#11     DependencyWalker.walk.strongConnect (package:analyzer/src/summary/link.dart:100:13)
#12     DependencyWalker.walk (package:analyzer/src/summary/link.dart:119:18)
#13     computeConstants (package:analyzer/src/dart/constant/compute.dart:26:14)
#14     LibraryAnalyzer._computeConstants (package:analyzer/src/dart/analysis/library_analyzer.dart:259:5)
#15     LibraryAnalyzer.analyzeSync (package:analyzer/src/dart/analysis/library_analyzer.dart:145:5)
#16     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:107:12)
#17     AnalysisDriver._computeResolvedLibrary2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1414:65)
#18     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#19     AnalysisDriver._computeResolvedLibrary2 (package:analyzer/src/dart/analysis/driver.dart:1400:20)
#20     AnalysisDriver._computeResolvedLibrary.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1393:15)
#21     _rootRun (dart:async/zone.dart:1186:13)
#22     _CustomZone.run (dart:async/zone.dart:1090:19)
#23     _runZoned (dart:async/zone.dart:1626:10)
#24     runZoned (dart:async/zone.dart:1546:10)
#25     NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#26     AnalysisDriver._computeResolvedLibrary (package:analyzer/src/dart/analysis/driver.dart:1392:40)
#27     AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:962:22)
#28     AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2013:24)


Change-Id: I1d5482390a7d76cccbfbdf1dd871f9473ce2826a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175944
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 05:50:17 +00:00
Konstantin Shcheglov d2e5d475bc Fix for crash when annotation references synthtic constructor of a generic class alias.
FAILURE: mixi@:class<s=a(=m
[NoSuchMethodError: The getter 'enclosingElement' was called on null.
Receiver: null
Tried calling: enclosingElement, #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      LinkedResolutionReader.nextElement (package:analyzer/src/summary2/bundle_reader.dart:602:22)
#2      ApplyResolutionVisitor._nextElement (package:analyzer/src/summary2/apply_resolution.dart:1106:24)
#3      ApplyResolutionVisitor.visitAnnotation (package:analyzer/src/summary2/apply_resolution.dart:83:20)
#4      AnnotationImpl.accept (package:analyzer/src/dart/ast/ast.dart:280:49)
#5      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#6      ApplyResolutionVisitor.visitClassTypeAlias (package:analyzer/src/summary2/apply_resolution.dart:167:20)
#7      ClassTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:1794:49)
#8      LinkedContext.applyResolution (package:analyzer/src/summary2/bundle_reader.dart:512:11)
#9      LinkedUnitContext.applyResolution (package:analyzer/src/summary2/linked_unit_context.dart:93:25)
#10     ElementImpl.metadata (package:analyzer/src/dart/element/element.dart:2893:21)
#11     ResolutionVisitor.visitClassTypeAlias (package:analyzer/src/dart/resolver/resolution_visitor.dart:256:51)
#12     ClassTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:1794:49)
#13     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#14     CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2141:21)
#15     RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:731:10)
#16     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#17     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:680:10)
#18     LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:139:7)
#19     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:387:8)
#20     LibraryAnalyzer.analyzeSync (package:analyzer/src/dart/analysis/library_analyzer.dart:138:11)
#21     LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:107:12)
#22     AnalysisDriver._computeResolvedLibrary2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1414:65)
#23     PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#24     AnalysisDriver._computeResolvedLibrary2 (package:analyzer/src/dart/analysis/driver.dart:1400:20)
#25     AnalysisDriver._computeResolvedLibrary.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1393:15)


Change-Id: I6f04a325b30d9dc61e7eb1a4bba91ed8b9bcd1d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176060
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-14 05:37:37 +00:00
Brian Wilkerson 9dad1876d3 Suggest hidden files and folders when completing in YAML files
Change-Id: Icea426117c1d8c3bd014511396cebd301586baaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175941
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-13 23:56:47 +00:00
Parker Lougheed 500e99c988 Fix _fe_analyzer_shared sdk constraint
This was causing issues as I believe 2.12 takes precedent over pre-releases with -x.

Change-Id: I4ca2433e266998782cdf3f677dbefd3149a1a054
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175940
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-13 20:13:37 +00:00
Konstantin Shcheglov b21913b0a3 Fix for NPE when no flow for 'if' statement.
FAILURE: typedef:(:<>(s{if
[NoSuchMethodError: The method 'ifStatement_thenBegin' was called on null.
Receiver: null
Tried calling: ifStatement_thenBegin(Instance of 'SimpleIdentifierImpl'), #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      ResolverVisitor.visitIfStatement (package:analyzer/src/generated/resolver.dart:1556:26)
#2      IfStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:5705:49)
#3      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#4      BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1087:17)
#5      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#6      UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:3143:31)
#7      ScopedVisitor.visitBlock.<anonymous closure> (package:analyzer/src/generated/resolver.dart:2467:13)
#8      ScopedVisitor._withDeclaredLocals (package:analyzer/src/generated/resolver.dart:3061:8)
#9      ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:2466:5)
#10     BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#11     BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1042:13)
#12     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#13     UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:3146:55)
#14     ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:2476:13)
#15     ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:954:13)
#16     BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#17     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5010:12)
#18     FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#19     ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1457:37)
#20     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#21     DefaultFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3008:20)
#22     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#23     UnifyingAstVisitor.visitDefaultFormalParameter (package:analyzer/dart/ast/visitor.dart:3198:65)
#24     ResolverVisitor.visitDefaultFormalParameter (package:analyzer/src/generated/resolver.dart:1239:11)
#25     DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3003:15)
#26     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#27     FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4493:17)
#28     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#29     UnifyingAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:3258:59)
#30     ScopedVisitor.visitFormalParameterList (package:analyzer/src/generated/resolver.dart:2717:11)
#31     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4489:49)
#32     FunctionTypeAliasImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5166:18)
#33     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#34     UnifyingAstVisitor.visitFunctionTypeAlias (package:analyzer/dart/ast/visitor.dart:3285:55)
#35     ScopedVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:2819:11)
#36     ResolverVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:1490:11)
#37     ScopedVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:2812:7)
#38     ResolverVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:1482:13)
#39     FunctionTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:5158:49)
#40     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1088:23)
#41     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#42     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)


R=brianwilkerson@google.com

Change-Id: I72bf7219d55d0bf53beae11f977f8fb840dd8e2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175908
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-12 18:19:41 +00:00
Konstantin Shcheglov 3c2e851780 Fix for crash when function expression has empty body.
FAILURE: _(:<>(o;?(a(@([
[NoSuchMethodError: The getter 'contextType' was called on null.
Receiver: null
Tried calling: contextType, #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:72:35)
#2      ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1424:37)
#3      FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#4      ResolverVisitor.visitConditionalExpression (package:analyzer/src/generated/resolver.dart:1068:16)
#5      ConditionalExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:2265:15)
#6      DefaultFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3008:20)
#7      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#8      UnifyingAstVisitor.visitDefaultFormalParameter (package:analyzer/dart/ast/visitor.dart:3198:65)
#9      ResolverVisitor.visitDefaultFormalParameter (package:analyzer/src/generated/resolver.dart:1206:11)
#10     DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3003:15)
#11     NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#12     FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4493:17)
#13     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#14     UnifyingAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:3258:59)
#15     ScopedVisitor.visitFormalParameterList (package:analyzer/src/generated/resolver.dart:2684:11)
#16     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4489:49)
#17     FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5009:18)
#18     FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#19     ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1415:35)
#20     FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#21     FunctionDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4873:26)
#22     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#23     UnifyingAstVisitor.visitFunctionDeclaration (package:analyzer/dart/ast/visitor.dart:3271:59)
#24     ScopedVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:2749:11)
#25     ResolverVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:1405:11)
#26     ScopedVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:2742:7)
#27     ResolverVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:1374:11)
#28     FunctionDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4866:49)
#29     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1055:23)
#30     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#31     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)


Change-Id: I62cde978d075bbafacb1b429e87049ca5d54d268
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175907
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-12 17:13:15 +00:00
Konstantin Shcheglov bb5b37eb5f Flow analysis is not available outside of function bodies and initializers.
This fixes a group of crashes during fuzz testing.

FAILURE: typedef`(=<?[
[NoSuchMethodError: The method 'nullAwareAccess_rightBegin' was called on null.
Receiver: null
Tried calling: nullAwareAccess_rightBegin(Instance of 'ListLiteralImpl', Instance of 'InterfaceTypeImpl'), #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1      ResolverVisitor.startNullAwareIndexExpression (package:analyzer/src/generated/resolver.dart:776:26)
#2      ResolverVisitor.visitIndexExpression (package:analyzer/src/generated/resolver.dart:1585:5)
#3      IndexExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5993:49)
#4      DefaultFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3008:20)
#5      ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#6      UnifyingAstVisitor.visitDefaultFormalParameter (package:analyzer/dart/ast/visitor.dart:3198:65)
#7      ResolverVisitor.visitDefaultFormalParameter (package:analyzer/src/generated/resolver.dart:1239:11)
#8      DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3003:15)
#9      NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#10     FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4493:17)
#11     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#12     UnifyingAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:3258:59)
#13     ScopedVisitor.visitFormalParameterList (package:analyzer/src/generated/resolver.dart:2717:11)
#14     FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4489:49)
#15     FunctionTypeAliasImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5166:18)
#16     ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#17     UnifyingAstVisitor.visitFunctionTypeAlias (package:analyzer/dart/ast/visitor.dart:3285:55)
#18     ScopedVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:2819:11)
#19     ResolverVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:1490:11)
#20     ScopedVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:2812:7)
#21     ResolverVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:1482:13)
#22     FunctionTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:5158:49)
#23     ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1088:23)
#24     CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#25     LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)

Continues //dart-review.googlesource.com/c/sdk/+/175187

Change-Id: I9518363961b4adcf7f57c2f0661151ef74efc2f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175906
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-12 17:05:32 +00:00
Sam Rawlins 140afeebc8 analyzer: Prepare some APIs for null safety; specify returns more accurately
Change-Id: Ia71bf5958d28c4229f68c0a1612cf44a2f283419
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175903
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-12-12 17:05:10 +00:00
Brian Wilkerson b0efb3738f Add enhanced testing support for dart fix
Change-Id: I8cf49b85142c242597542eae9306eb09be5e4149
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175920
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-12 16:46:10 +00:00
Konstantin Shcheglov dd8401ac16 Don't write initializers of static final fields.
This was causing one of the new crashes in summaries.

Change-Id: I50e33a83d680070d1863f27b8ee276163b84c9d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175905
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-12 07:27:40 +00:00
Konstantin Shcheglov 3d67e6f998 Migrate _fe_analyzer_shared to null safety.
Some notes.

1. `Token.next` is `Token?` because there are null(s) for comment tokens.
  But I think that it is never `null` in code, because there is at
  least EOF token. So, lots of `!` null checks.

2. `Link.tail` is never null when `isNotEmpty`, but the type system
  cannot express it. So, some number of `!` null checks.

3. I keep assert(s) for now, and use comment
  `// ignore: unnecessary_null_comparison`.

4. I disabled `can_get_rid_of_nnbd_issue_error`, I think it fails
  because of changes in `_fe_analyzer_shared` language version.

Smoke test in google3 looks green.
https://test.corp.google.com/ui#id=OCL:346825148:BASE:346841611:1607632317129:6e87bf7

I have not tried yet full TAP, will do in the evening.

I have not tried yet Golem, or looked at benchmarks.

Change-Id: I651301e5d3a851dd77d73af960dac779cb0fc991
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175620
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-12-12 03:22:29 +00:00
Konstantin Shcheglov 1b337c5762 Fix crash in VarianceBuilder when more type arguments than type parameters.
R=brianwilkerson@google.com

Change-Id: Iffdae11f93a68ad5a63c0f3b08b8f087423b0d84
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 23:20:29 +00:00
Konstantin Shcheglov 15a533f0ac Add tests for non-function type aliases that end with question types and classes.
Change-Id: Id56f2e8dec535e5c7af081bf7b94c759027cac6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175865
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 21:04:39 +00:00
Sam Rawlins 17b7d05e72 Analyzer: prepare for null safety in tests: casts and late variables
Change-Id: I37f3663b340952b79cef0e423caf81e5950b700b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175841
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-11 19:50:39 +00:00
Konstantin Shcheglov 999321ede2 Extract TestInstrumentationService into a library, more tests.
R=brianwilkerson@google.com

Change-Id: I563304d4d278fa0755387122a7078b8f020c2d0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175862
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 19:49:29 +00:00
Konstantin Shcheglov 0c9594a913 Fix a TODO to use resolved AST in ResynthesizeTestCases.
R=brianwilkerson@google.com

Change-Id: If9885c8bbcf34ff31459434c654e01b2f1876674
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175863
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-11 19:49:07 +00:00
Konstantin Shcheglov 96552d2524 Replace LibraryContext.loadedBundles.add with ElementFactory.
Change-Id: I6171e0b738d854d6065591b08bf76c261bfaf6f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175823
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 16:54:20 +00:00
Konstantin Shcheglov ccb34a7029 Test resynthesized elements with null safety by default, print mullabilities.
Change-Id: If2be6f37df5a93b9392e92d99ea7d7f461798847
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175824
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 16:54:19 +00:00
Sam Rawlins a59a30b726 analyzer: support glob 2.0
Fixes https://github.com/dart-lang/sdk/issues/44429

Change-Id: Ib9851fef367486a376aa33a8a5cbcc8d2b80dc46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175840
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-12-11 16:06:08 +00:00
Jens Johansen 739393b290 [kernel] Fix and test readComponentSource
This was broken after constant coverage was recorded in dill because
reading the source then needed to have the link table too (which it
doesn't have when using readComponentSource).

Fixes https://github.com/flutter/flutter/issues/71851.

Change-Id: I90b6a185abd133c7d08fd335f69faf634684738b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175724
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-12-11 11:57:58 +00:00
Konstantin Shcheglov b16c212776 Fix ConvertQuotes and ConvertToMutilineString when unterminated string.
I finally understood how to reproduce it :-)

R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: Id75fa54057f7db49e8d3f8f3b6f2f25785ed4977
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175822
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 02:36:08 +00:00
Stephen Adams cc3c70159d [dart2js] Convert first argument to main
- When `main` has arguments, use a callMain shim to convert first
  argument passed to `main` to a `List<String>`.

- Make js_runtime/preambles/{d8,jsshell}.js pass command line arguments to
  Dart `main`.

Change-Id: I8c04bbe49366e756cfe84d1c705767e0366ee74c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158373
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-12-11 01:29:28 +00:00
Konstantin Shcheglov 60ec210866 Add debug data to ApplyResolutionVisitor.
R=brianwilkerson@google.com

Change-Id: I4873d3101457b1287af59c61781c72e220cc9437
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175800
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-11 00:49:58 +00:00
Konstantin Shcheglov d54acb59ae Fix RemoveComparison for empty block in IfStatement, some refactoring.
A couple of new tests.

Change-Id: Iab8a6df102c8dcaa8faafec715f1556424e3b571
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-12-11 00:45:28 +00:00
Mark Zhou 2e97d91dcd [dartdevc] Fixing expression eval breaks from stepping update.
Followup on https://dart-review.googlesource.com/c/sdk/+/173800

This change forces certain top-level containers to be emitted (even if empty) per module. These modules also carry a self-referential element so that V8 does not optimize them away.

Change-Id: Ic02adb9c4e322c29ba092951fd912019931b3871
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175445
Reviewed-by: Anna Gringauze <annagrin@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
2020-12-11 00:18:28 +00:00
Robert Nystrom 9b647f66e7 Add a script to scrape string literal quotation data.
Change-Id: Ie338fddece20db0109ecbc2c508d8b3cd0d45754
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175781
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-12-11 00:13:08 +00:00
Sam Rawlins 69cb9f7a67 Analyzer: Remove legacy parser (replaced by Fasta).
* Replace most of the implementation of Parser with the implementation
  found in _Parser2, which uses Fasta.
* Rework Parser constructor to do exactly what the previous factory
  constructor + _Parser2 constructor did.
* Remove _Parser2 and ParserAdapter.
* Remove `useFasta` argument in several places.
* Delete tests in parser_test.dart which only used the legacy parser.
* Move ParserProxy from parser_fasta_test.dart to parser_test.dart
* Remove ~240 cases of dead code like `if (useFasta)` and `useFasta ?`
  in tests.

Change-Id: Iea29a10ff83103293902336490fbc9cd46cd20ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175560
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-10 23:47:48 +00:00
Konstantin Shcheglov b63d2114aa Switch TopLevelInferenceTest to PubPackageResolutionTest.
R=brianwilkerson@google.com

Change-Id: I5409e59d0b6ccf5644687840cdc9767fb8a49cf5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175584
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-10 22:08:48 +00:00
Sam Rawlins fc80294c89 analyzer: Remove two unused parameters from _checkForMissingReturn
Change-Id: Iaef99649f95f8b90bd2844fe5ca8a1ad16d981e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175741
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-12-10 19:53:07 +00:00
Brian Wilkerson 5d99e7cdfe Support using data-driven fixes when using deprecated APIs from the same package as the use
Change-Id: I0f12505bf2a772cdb9b187c170bbfa44b2ff85cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175743
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-10 18:18:52 +00:00
Danny Tuppeny c9f6e51315 [Analyzer] Update to include final LSP v3.16 changes
Change-Id: Icb35324308485e3a40abfcee8550ba10538a935e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-10 18:10:47 +00:00
pq 690ae7a7ba add null check quickfix for index expressions
Fixes: https://github.com/dart-lang/sdk/issues/44441

Change-Id: I7cca517fa2864e6b09dd9d7971447420e59e221e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-12-10 15:44:47 +00:00
Johnni Winther b24ac718ec [cfe] Handle missing suffix recovery in body builder
Closes #44347

Change-Id: I576e657a74b89cad5b150f11a3af59ee1d5c963d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175660
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-12-10 14:00:37 +00:00
Oleksii Khomchenko 64226729c1 [corelib] Add Set.unmodifiable backed by an UnmodifiableSetView
UnmodifiableSetView does not have backend specific implementations
(simillar to UnmodifiableMapView, unlike UnmodifiableListView).

Closes https://github.com/dart-lang/sdk/issues/36901

Change-Id: I041bb6dc95d6a67a395ca75581ffe8e5933acdc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164103
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2020-12-10 11:00:27 +00:00
Johnni Winther 80161c3081 [cfe] Use Member.fileUri for DillMemberBuilder
Change-Id: Iab72b4975029fb262d4fd62a121b7d73a03edb53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175640
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-12-10 10:17:17 +00:00
Jens Johansen c1d2c25ef1 [CFE] Add constant coverage in expect files
Change-Id: I0fc009708aa6e330366ad0689c4634a1df90d9c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175368
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-12-10 08:57:17 +00:00
Srujan Gaddam 8e663541c9 [ddc] Change is checks for JS types
Changes 'is' checks for JS types such that it no longer does an
instance of check and instead only checks to see if the object
in question is a JS object or appropriate subtype. This means that
any two @JS objects will pass an is check and therefore can be
casted as one another. This makes it consistent with expected
behavior and dart2js.

Also amends the README to reflect the unified behavior.

Change-Id: I11aa105d6cafbbafde482b27dcc1182c0960cce9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173140
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2020-12-10 01:38:26 +00:00
Sam Rawlins 1b130f47c1 Analyzer: Prepare some manually lazily initialized fields etc for null safety
* Add `/*late final*/ hints for fields which are manually lazily
  initialized in a public getter.
* Switch List(size) constructor with [] list literal.
* Force a few non-nullable types.
* Remove `null` assignments in embedder_tests.dart which change type of
  fields.
* Remove `null` Tokens in tests where null should not be.

Change-Id: I260657d222f6b8ca10e31d06991dc9e2cb575e5c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171140
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-10 01:14:48 +00:00