dart-lang / sdk

The Dart SDK, including the VM, dart2js, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
9.96k stars 1.53k forks source link

Analyzer fuzz crash: invalid super syntax in const constructor #38550

Open MichaelRFairhurst opened 4 years ago

MichaelRFairhurst commented 4 years ago
class D {
  const D(): super."";
}

Without const, this causes #38041, so these are likely related.

Unhandled exception:
NoSuchMethodError: The getter 'endToken' was called on null.
Receiver: null
Tried calling: endToken
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      SuperConstructorInvocationImpl.endToken (package:analyzer/src/dart/ast/ast.dart:9491:39)
#2      _UnitApiSignatureComputer.addClassOrMixin (package:analyzer/src/dart/analysis/unlinked_api_signature.dart:38:65)
#3      _UnitApiSignatureComputer.compute (package:analyzer/src/dart/analysis/unlinked_api_signature.dart:128:9)
#4      computeUnlinkedApiSignature (package:analyzer/src/dart/analysis/unlinked_api_signature.dart:15:12)
#5      FileState.serializeAstUnlinked2 (package:analyzer/src/dart/analysis/file_state.dart:781:21)
#6      FileState._refresh2.<anonymous closure> (package:analyzer/src/dart/analysis/file_state.dart:650:30)
#7      PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:34:15)
#8      FileState._refresh2 (package:analyzer/src/dart/analysis/file_state.dart:649:26)
#9      FileState.refresh (package:analyzer/src/dart/analysis/file_state.dart:401:14)
#10     FileSystemState.getFileForPath (package:analyzer/src/dart/analysis/file_state.dart:964:12)
scheglov commented 4 years ago

Yes, this issue has the same underlaying issue as #38041 - SuperConstructorInvocation with null as argumentList.