Closed
Description
$ cat <<EOF >test.dart
typedef C<A, K> = int Function<B>(A x, K y, B v);
typedef D<K> = C<A, K> Function<A>(int z);
dynamic producer<K>() {
return <A>(int v1) {
return <B>(A v2, K v3, B v4) => 0;
};
}
main() {
assert(producer<String>() is D<String>);
}
EOF
$ DART_CONFIGURATION=DebugX64 ./pkg/front_end/tool/fasta compile test.dart
Unhandled exception:
NoSuchMethodError: The method 'accept' was called on null.
Receiver: null
Tried calling: accept(Instance of '_InnerTypeSubstitutor')
#0 Object.noSuchMethod (dart:core-patch/dart:core/object_patch.dart:46)
#1 _TypeSubstitutor.visit (package:kernel/type_algebra.dart:389:41)
#2 _InnerTypeSubstitutor.freshTypeParameter (package:kernel/type_algebra.dart:343:19)
#3 MappedListIterable.elementAt (dart:_internal/iterable.dart:413)
#4 ListIterable.toList (dart:_internal/iterable.dart:218)
#5 _TypeSubstitutor.freshTypeParameters (package:kernel/type_algebra.dart:415:47)
#6 _TypeSubstitutor.visitFunctionType (package:kernel/type_algebra.dart:436:32)
#7 FunctionType.accept (package:kernel/ast.dart:4570:34)
#8 _TypeSubstitutor.visit (package:kernel/type_algebra.dart:389:41)
#9 Substitution.substituteType (package:kernel/type_algebra.dart:239:53)
#10 substitute (package:kernel/type_algebra.dart:19:45)
#11 KernelFunctionTypeAliasBuilder.buildTypesWithBuiltArguments (package:front_end/src/fasta/kernel/kernel_function_type_alias_builder.dart:92:12)
#12 KernelFunctionTypeAliasBuilder.buildType (package:front_end/src/fasta/kernel/kernel_function_type_alias_builder.dart:109:12)
#13 KernelNamedTypeBuilder.build (package:front_end/src/fasta/kernel/kernel_named_type_builder.dart:46:20)
#14 KernelFunctionTypeBuilder.build (package:front_end/src/fasta/kernel/kernel_function_type_builder.dart:40:21)
...