Skip to content

Commit 5916d4a

Browse files
authored
Merge the null_safety branch into master (flutter#16)
1 parent ac917a8 commit 5916d4a

File tree

6 files changed

+131
-35
lines changed

6 files changed

+131
-35
lines changed

.travis.yml

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,39 @@
11
language: dart
22

3-
# trying to get chrome working
4-
sudo: true
5-
63
dart:
7-
- dev
8-
- 2.7.0
9-
10-
dart_task:
11-
- test: -p chrome,vm
4+
- be/raw/latest
125

13-
matrix:
6+
jobs:
147
include:
15-
# Only validate formatting using the dev release
16-
- dart: dev
17-
dart_task: dartfmt
18-
- dart: dev
19-
dart_task:
20-
dartanalizer: --fatal-warnings --fatal-infos .
8+
- stage: analyze_and_format
9+
name: "Analyze"
10+
dart: be/raw/latest
11+
os: linux
12+
script: dartanalyzer --enable-experiment=non-nullable --fatal-warnings --fatal-infos .
13+
- stage: analyze_and_format
14+
name: "Format"
15+
dart: be/raw/latest
16+
os: linux
17+
script: dartfmt -n --set-exit-if-changed .
18+
- stage: test
19+
name: "Vm Tests"
20+
dart: be/raw/latest
21+
os: linux
22+
script: pub run --enable-experiment=non-nullable test -p vm
23+
- stage: test
24+
name: "Web Tests"
25+
dart: be/raw/latest
26+
os: linux
27+
script: pub run --enable-experiment=non-nullable test -p chrome
28+
29+
stages:
30+
- analyze_and_format
31+
- test
2132

2233
# Only building master means that we don't run two builds for each pull request.
2334
branches:
24-
only: [master]
35+
only: [master, null_safety]
2536

2637
cache:
27-
directories:
28-
- $HOME/.pub-cache
38+
directories:
39+
- $HOME/.pub-cache

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.1.0
2+
3+
* Migrate to null safety.
4+
15
## 2.0.0
26

37
### Breaking Changes

analysis_options.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ analyzer:
44
implicit-casts: false
55
language:
66
strict-raw-types: true
7+
enable-experiment:
8+
- non-nullable

lib/source_map_stack_trace.dart

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import 'package:stack_trace/stack_trace.dart';
1919
/// [sdkRoot] is the URI surfaced in the stack traces for SDK libraries.
2020
/// If it's passed, stack frames from the SDK will have `dart:` URLs.
2121
StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace,
22-
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
22+
{bool minified = false, Map<String, Uri>? packageMap, Uri? sdkRoot}) {
2323
if (stackTrace is Chain) {
2424
return Chain(stackTrace.traces.map((trace) {
2525
return Trace.from(mapStackTrace(sourceMap, trace,
@@ -31,24 +31,25 @@ StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace,
3131

3232
var trace = Trace.from(stackTrace);
3333
return Trace(trace.frames.map((frame) {
34+
var line = frame.line;
3435
// If there's no line information, there's no way to translate this frame.
3536
// We could return it as-is, but these lines are usually not useful anyways.
36-
if (frame.line == null) return null;
37+
if (line == null) return null;
3738

3839
// If there's no column, try using the first column of the line.
3940
var column = frame.column ?? 0;
4041

4142
// Subtract 1 because stack traces use 1-indexed lines and columns and
4243
// source maps uses 0-indexed.
43-
var span = sourceMap.spanFor(frame.line - 1, column - 1,
44-
uri: frame.uri?.toString());
44+
var span =
45+
sourceMap.spanFor(line - 1, column - 1, uri: frame.uri.toString());
4546

4647
// If we can't find a source span, ignore the frame. It's probably something
4748
// internal that the user doesn't care about.
4849
if (span == null) return null;
4950

5051
var sourceUrl = span.sourceUrl.toString();
51-
if (sdkRoot != null && p.url.isWithin(sdkLib, sourceUrl)) {
52+
if (sdkLib != null && p.url.isWithin(sdkLib, sourceUrl)) {
5253
sourceUrl = 'dart:' + p.url.relative(sourceUrl, from: sdkLib);
5354
} else if (packageMap != null) {
5455
for (var package in packageMap.keys) {
@@ -70,8 +71,8 @@ StackTrace mapStackTrace(Mapping sourceMap, StackTrace stackTrace,
7071
// use the minified member name.
7172
minified
7273
? (span.isIdentifier ? span.text : frame.member)
73-
: _prettifyMember(frame.member));
74-
}).where((frame) => frame != null));
74+
: _prettifyMember(frame.member!));
75+
}).whereType<Frame>());
7576
}
7677

7778
/// Reformats a JS member name to make it look more Dart-like.
@@ -86,7 +87,7 @@ String _prettifyMember(String member) {
8687
RegExp(r'(_+)closure\d*\.call$'),
8788
// The number of underscores before "closure" indicates how nested it
8889
// is.
89-
(match) => '.<fn>' * match[1].length)
90+
(match) => '.<fn>' * match[1]!.length)
9091
// Get rid of explicitly-generated calls.
9192
.replaceAll(RegExp(r'\.call$'), '')
9293
// Get rid of the top-level method prefix.
@@ -99,5 +100,5 @@ String _prettifyMember(String member) {
99100
// Convert underscores after identifiers to dots. This runs the risk of
100101
// incorrectly converting members that contain underscores, but those are
101102
// contrary to the style guide anyway.
102-
.replaceAllMapped(RegExp(r'([a-zA-Z0-9]+)_'), (match) => match[1] + '.');
103+
.replaceAllMapped(RegExp(r'([a-zA-Z0-9]+)_'), (match) => match[1]! + '.');
103104
}

pubspec.yaml

Lines changed: 83 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,95 @@
11
name: source_map_stack_trace
2-
version: 2.0.0
2+
version: 2.1.0-nullsafety
33
description: A package for applying source maps to stack traces.
44
homepage: https://github.com/dart-lang/source_map_stack_trace
55

66
environment:
7-
sdk: '>=2.7.0 <3.0.0'
7+
sdk: '>=2.9.0-18.0 <2.9.0'
88

99
dependencies:
10-
path: ^1.0.0
11-
stack_trace: ^1.0.0
12-
source_maps: ^0.10.2
10+
path: '>=1.8.0-nullsafety <1.8.0'
11+
stack_trace: '>=1.10.0-nullsafety <1.10.0'
12+
source_maps: '>=0.11.0-nullsafety <0.11.0'
1313

1414
dev_dependencies:
1515
source_span: ^1.6.0
1616
test: ^1.12.0
1717
pedantic: ^1.0.0
18+
19+
dependency_overrides:
20+
# Overrides required for a version solve
21+
coverage: 0.14.0
22+
# NNBD Branches
23+
async:
24+
git:
25+
url: git://github.com/dart-lang/async.git
26+
ref: null_safety
27+
boolean_selector:
28+
git:
29+
url: git://github.com/dart-lang/boolean_selector.git
30+
ref: null_safety
31+
charcode:
32+
git:
33+
url: git://github.com/dart-lang/charcode.git
34+
ref: null_safety
35+
collection: 1.15.0-nullsafety
36+
js:
37+
git:
38+
url: git://github.com/dart-lang/sdk.git
39+
path: pkg/js
40+
matcher:
41+
git:
42+
url: git://github.com/dart-lang/matcher.git
43+
ref: null_safety
44+
meta: 1.3.0-nullsafety
45+
path:
46+
git:
47+
url: git://github.com/dart-lang/path.git
48+
ref: null_safety
49+
pedantic:
50+
git:
51+
url: git://github.com/dart-lang/pedantic.git
52+
ref: null_safety
53+
pool:
54+
git:
55+
url: git://github.com/dart-lang/pool.git
56+
ref: null_safety
57+
source_maps:
58+
git:
59+
url: git://github.com/dart-lang/source_maps.git
60+
ref: null_safety
61+
source_span:
62+
git:
63+
url: git://github.com/dart-lang/source_span.git
64+
ref: null_safety
65+
stack_trace:
66+
git:
67+
url: git://github.com/dart-lang/stack_trace.git
68+
ref: null_safety
69+
stream_channel:
70+
git:
71+
url: git://github.com/dart-lang/stream_channel.git
72+
ref: null_safety
73+
string_scanner:
74+
git:
75+
url: git://github.com/dart-lang/string_scanner.git
76+
ref: null_safety
77+
term_glyph:
78+
git:
79+
url: git://github.com/dart-lang/term_glyph.git
80+
ref: null_safety
81+
test:
82+
git:
83+
url: git://github.com/dart-lang/test.git
84+
ref: null_safety
85+
path: pkgs/test
86+
test_api:
87+
git:
88+
url: git://github.com/dart-lang/test.git
89+
ref: null_safety
90+
path: pkgs/test_api
91+
test_core:
92+
git:
93+
url: git://github.com/dart-lang/test.git
94+
ref: null_safety
95+
path: pkgs/test_core

test/source_map_stack_trace_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,21 +244,21 @@ bar.dart.js 10:11 foo
244244
/// Like [mapStackTrace], but is guaranteed to return a [Trace] so it can be
245245
/// inspected.
246246
Trace _mapTrace(Mapping sourceMap, StackTrace stackTrace,
247-
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
247+
{bool minified = false, Map<String, Uri>? packageMap, Uri? sdkRoot}) {
248248
return Trace.from(mapStackTrace(sourceMap, stackTrace,
249249
minified: minified, packageMap: packageMap, sdkRoot: sdkRoot));
250250
}
251251

252252
/// Like [mapStackTrace], but is guaranteed to return a [Chain] so it can be
253253
/// inspected.
254254
Chain _mapChain(Mapping sourceMap, StackTrace stackTrace,
255-
{bool minified = false, Map<String, Uri> packageMap, Uri sdkRoot}) {
255+
{bool minified = false, Map<String, Uri>? packageMap, Uri? sdkRoot}) {
256256
return Chain.forTrace(mapStackTrace(sourceMap, stackTrace,
257257
minified: minified, packageMap: packageMap, sdkRoot: sdkRoot));
258258
}
259259

260260
/// Runs the mapper's prettification logic on [member] and returns the result.
261-
String _prettify(String member) {
261+
String? _prettify(String member) {
262262
var trace = Trace([Frame(Uri.parse('foo.dart.js'), 10, 11, member)]);
263263
return _mapTrace(_simpleMapping, trace).frames.first.member;
264264
}

0 commit comments

Comments
 (0)