Skip to content

Commit c4a569b

Browse files
committed
add markdown and more test cases
1 parent 20ba327 commit c4a569b

File tree

12 files changed

+80
-46
lines changed

12 files changed

+80
-46
lines changed

lib/src/generator/templates.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ const _partials_md = <String>[
7070
'property',
7171
'source_code',
7272
'source_link',
73+
'type',
74+
'type_multiline',
75+
'typedef',
76+
'typedef_multiline',
7377
];
7478

7579
abstract class _TemplatesLoader {

lib/templates/md/_type.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
##### {{{linkedName}}}{{{linkedGenericParameters}}}({{{ linkedParamsNoMetadata }}}) {{{ linkedReturnType }}}
2+
{{>categorization}}
3+
4+
{{{ oneLineDoc }}} {{{ extendedDocLink }}} {{!two spaces intentional}}
5+
{{>features}}

lib/templates/md/_type_multiline.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{{#hasAnnotations}}
2+
{{#annotations}}
3+
- {{{.}}}
4+
{{/annotations}}
5+
{{/hasAnnotations}}
6+
7+
{{>name_summary}}{{{genericParameters}}} = {{{linkedReturnType}}}

lib/templates/md/_typedef.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{{#isCallable}}
2+
{{>callable}}
3+
{{/isCallable}}
4+
{{^isCallable}}
5+
{{>type}}
6+
{{/isCallable}}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{{#isCallable}}
2+
{{>callable_multiline}}
3+
{{/isCallable}}
4+
{{^isCallable}}
5+
{{>type_multiline}}
6+
{{/isCallable}}

lib/templates/md/category.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
## Typedefs
7373

7474
{{#publicTypedefsSorted}}
75-
{{>callable}}
75+
{{>typedef}}
7676

7777
{{/publicTypedefsSorted}}
7878
{{/hasPublicTypedefs}}

lib/templates/md/library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
## Typedefs
8080

8181
{{#library.publicTypedefsSorted}}
82-
{{>callable}}
82+
{{>typedef}}
8383

8484
{{/library.publicTypedefsSorted}}
8585
{{/library.hasPublicTypedefs}}

lib/templates/md/typedef.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{{/self}}
1010

1111
{{#typeDef}}
12-
{{>callable_multiline}}
12+
{{>typedef_multiline}}
1313

1414
{{>documentation}}
1515

pubspec.yaml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ environment:
77
sdk: '>=2.11.99 <3.0.0'
88

99
dependencies:
10-
analyzer: ^1.0.0
10+
analyzer: ^1.1.0
1111
args: ^2.0.0
1212
charcode: ^1.2.0
1313
collection: ^1.2.0
@@ -40,18 +40,3 @@ dev_dependencies:
4040

4141
executables:
4242
dartdoc: null
43-
44-
dependency_overrides:
45-
args: ^2.0.0-nullsafety.0
46-
cli_util: ^0.3.0-nullsafety.0
47-
crypto: ^3.0.0-nullsafety.0
48-
glob: ^2.0.0-nullsafety.0
49-
package_config: ^2.0.0-nullsafety.0
50-
pub_semver: ^2.0.0-nullsafety.0
51-
yaml: ^3.0.0-nullsafety.0
52-
analyzer:
53-
path: '/Users/jcollins/dart/sdk/sdk/pkg/analyzer'
54-
_fe_analyzer_shared:
55-
path: '/Users/jcollins/dart/sdk/sdk/pkg/_fe_analyzer_shared'
56-
#meta:
57-
# path: '/Users/jcollins/dart/sdk/sdk/pkg/meta'

test/end2end/model_special_cases_test.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,20 @@ void main() {
9797
T7 = generalizedTypedefs.typedefs.firstWhere((a) => a.name == 'T7');
9898
});
9999

100-
void expectTypedefs(Typedef t, String modelTypeToString, String genericParameters) {
100+
void expectTypedefs(Typedef t, String modelTypeToString, Iterable<String> genericParameters) {
101101
expect(t.modelType.toString(), equals(modelTypeToString));
102-
expect(t.genericParameters, equals(genericParameters));
102+
expect(t.genericTypeParameters.map((p) => p.toString()), orderedEquals(genericParameters));
103103
}
104104

105105
test('basic non-function typedefs work', () {
106-
expectTypedefs(T0, 'void', '');
107-
expectTypedefs(T1, 'Function', '');
108-
expectTypedefs(T2, 'List<X>', '');
109-
expectTypedefs(T3, '', '');
110-
expectTypedefs(T4, '', '');
111-
expectTypedefs(T5, '', '');
112-
expectTypedefs(T6, '', '');
113-
expectTypedefs(T7, '', '');
106+
expectTypedefs(T0, 'void', []);
107+
expectTypedefs(T1, 'Function', []);
108+
expectTypedefs(T2, 'List<X>', ['out X']);
109+
expectTypedefs(T3, 'Map<X, Y>', ['out X', 'out Y']);
110+
expectTypedefs(T4, 'void Function()', []);
111+
expectTypedefs(T5, 'X Function(X, {X name})', ['inout X']);
112+
expectTypedefs(T6, 'X Function(Y, [Map<Y, Y>])', ['out X', 'in Y']);
113+
expectTypedefs(T7, 'X Function(Y, [Map<Y, Y>])', ['out X extends String', 'in Y extends List<X>']);
114114
});
115115
}, skip: (!_generalizedTypedefsAllowed.allows(_platformVersion)));
116116
});

testing/test_package_experiments/lib/generalized_typedefs.dart

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
/// typedef syntax, and produce correct results.
77
library generalized_typedefs;
88

9+
// from basic_syntax_test (Dart SDK)
10+
911
typedef T0 = void;
1012
typedef T1 = Function;
1113
typedef T2<X> = List<X>;
@@ -15,8 +17,26 @@ typedef T5<X> = X Function(X, {X name});
1517
typedef T6<X, Y> = X Function(Y, [Map<Y, Y>]);
1618
typedef T7<X extends String, Y extends List<X>> = X Function(Y, [Map<Y, Y>]);
1719

18-
void main() {
19-
// ignore:unused_local_variable
20-
var ensure_usage = [T0, T1, T2, T3, T4, T5, T6, T7];
21-
print('hi');
20+
class C1<T3> {}
21+
22+
typedef T8 = C1;
23+
24+
abstract class C extends T8 {
25+
T0 f;
26+
T1 g(T2 a, T3 b);
27+
28+
T2 operator +(T2 other) => other;
29+
30+
static final T4 h = (){};
31+
static T5<C>? i;
32+
33+
T7<String, List<String>> get j;
34+
35+
set k(T6<int, bool> value);
2236
}
37+
38+
extension E on T6 {
39+
static T4 f = () {};
40+
41+
T2 myMethod() => [5];
42+
}

tool/grind.dart

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,7 @@ void analyze() async {
226226
'--fatal-infos',
227227
'--options',
228228
'analysis_options_presubmit.yaml',
229-
'bin',
230-
'lib',
231-
'test',
232-
'tool',
229+
'.'
233230
],
234231
);
235232
}
@@ -241,22 +238,26 @@ void dartfmt() async {
241238
// Filter out test packages as they always have strange formatting.
242239
// Passing parameters to dartfmt for directories to search results in
243240
// filenames being stripped of the dirname so we have to filter here.
244-
void addFileToFix(String fileName) {
241+
void addFileToFix(String base, String fileName) {
245242
var pathComponents = path.split(fileName);
246243
if (pathComponents.isNotEmpty && pathComponents.first == 'testing') {
247244
return;
248245
}
249-
filesToFix.add(fileName);
246+
filesToFix.add(path.join(base, fileName));
250247
}
251248

252249
log('Validating dartfmt with version ${Platform.version}');
253-
await SubprocessLauncher('dartfmt').runStreamed(
254-
sdkBin('dartfmt'),
255-
[
256-
'-n',
257-
'.',
258-
],
259-
perLine: addFileToFix);
250+
// TODO(jcollins-g): return to global once dartfmt can handle generic
251+
// type aliases
252+
for (var subDirectory in ['bin', 'lib', 'test', 'tool', path.join('testing/test_package')]) {
253+
await SubprocessLauncher('dartfmt').runStreamed(
254+
sdkBin('dartfmt'),
255+
[
256+
'-n',
257+
subDirectory,
258+
],
259+
perLine: (n) => addFileToFix(subDirectory, n));
260+
}
260261
if (filesToFix.isNotEmpty) {
261262
fail(
262263
'dartfmt found files needing reformatting. Use this command to reformat:\n'

0 commit comments

Comments
 (0)